From b0fb6f99499029d3fc3113fbb8dc91b3e9ca6bc2 Mon Sep 17 00:00:00 2001 From: rmacklem Date: Sat, 30 Jul 2011 22:57:38 +0000 Subject: The new NFS client failed to vput() the new vnode if a setattr failed after the file was created in nfs_create(). This would probably only happen during a forced dismount. The old NFS client does have a vput() for this case. Detected by pho during recent testing, where an open syscall returned with a vnode still locked. Tested by: pho Approved by: re (kib) MFC after: 2 weeks --- sys/fs/nfsclient/nfs_clvnops.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'sys/fs/nfsclient/nfs_clvnops.c') diff --git a/sys/fs/nfsclient/nfs_clvnops.c b/sys/fs/nfsclient/nfs_clvnops.c index a69c76e..7e87b6e 100644 --- a/sys/fs/nfsclient/nfs_clvnops.c +++ b/sys/fs/nfsclient/nfs_clvnops.c @@ -1596,6 +1596,8 @@ again: if (attrflag) (void) nfscl_loadattrcache(&newvp, &nfsva, NULL, NULL, 0, 1); + if (error != 0) + vput(newvp); } } if (!error) { -- cgit v1.1