[nfs][client] - Question about handling of the NFS3_EEXIST error in SYMLINK rpc

alex.burlyga.ietf alex.burlyga.ietf alex.burlyga.ietf at gmail.com
Sat Jun 20 06:18:31 UTC 2015


Hi,

NFS client code in nfsrpc_symlink() masks server returned NFS3_EEXIST error
code
by returning 0 to the upper layers. I'm assuming this was an attempt to
work around
some server's broken replay cache out there, however, it breaks a more
common
case where server is returning EEXIST for legitimate reason and application
is expecting this error code and equipped to deal with it.

To fix it I see three ways of doing this:
 * Remove offending code
 * Make it optional, sysctl?
 * On NFS3_EEXIST send READLINK rpc to make sure symlink content is right

Which of the ways will maximize the chances of getting this fix upstream?

One more point, old client circa FreeBSD 7.0 does not exhibit this problem.

Alex


More information about the freebsd-fs mailing list