]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC: r297869
authorrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 7 May 2016 00:07:03 +0000 (00:07 +0000)
committerrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 7 May 2016 00:07:03 +0000 (00:07 +0000)
commit9511d4c7fb1f1dcb3caa5cd507ac92f0748f4962
tree4cae227d737397ecd065cde7a3d9d6ba85869c6d
parented3dd59fd30fc6db05a9a7a475b22bfc3d80439f
MFC: r297869
If the VOP_SETATTR() call that saves the exclusive create verifier failed,
the NFS server would leave the newly created vnode locked. This could
result in a file system that would not unmount and processes wedged,
waiting for the file to be unlocked.
Since this VOP_SETATTR() never fails for most file systems, this bug
doesn't normally manifest itself. I found it during testing of an
exported GlusterFS file system, which can fail.
This patch adds the vput() and changes the error to the correct NFS one.

git-svn-id: svn://svn.freebsd.org/base/stable/9@299209 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/fs/nfsserver/nfs_nfsdport.c