summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfs4recover.c
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@redhat.com>2012-04-10 00:06:49 +0200
committerJ. Bruce Fields <bfields@redhat.com>2012-04-11 23:49:52 +0200
commit9dc4e6c4d1182d34604ea40fef641775f5b15456 (patch)
tree22b055349ea646026a97ea0b0cc7da32c18f26dd /fs/nfsd/nfs4recover.c
parentLinux 3.4-rc2 (diff)
downloadlinux-9dc4e6c4d1182d34604ea40fef641775f5b15456.tar.xz
linux-9dc4e6c4d1182d34604ea40fef641775f5b15456.zip
nfsd: don't fail unchecked creates of non-special files
Allow a v3 unchecked open of a non-regular file succeed as if it were a lookup; typically a client in such a case will want to fall back on a local open, so succeeding and giving it the filehandle is more useful than failing with nfserr_exist, which makes it appear that nothing at all exists by that name. Similarly for v4, on an open-create, return the same errors we would on an attempt to open a non-regular file, instead of returning nfserr_exist. This fixes a problem found doing a v4 open of a symlink with O_RDONLY|O_CREAT, which resulted in the current client returning EEXIST. Thanks also to Trond for analysis. Cc: stable@kernel.org Reported-by: Orion Poplawski <orion@cora.nwra.com> Tested-by: Orion Poplawski <orion@cora.nwra.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4recover.c')
0 files changed, 0 insertions, 0 deletions