diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2009-07-12 17:02:17 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2009-07-12 17:02:17 +0000 |
commit | 049621beb5d8c1bc0f11998d3b3447df970cb552 (patch) | |
tree | eb0edd86610b3d310a9b773a2168681359479f92 /sys/fs/nfsclient | |
parent | 8233306b4dbea227967404cab9efb88be9cda042 (diff) | |
download | FreeBSD-src-049621beb5d8c1bc0f11998d3b3447df970cb552.zip FreeBSD-src-049621beb5d8c1bc0f11998d3b3447df970cb552.tar.gz |
Fix the handling of dotdot in lookup for the experimental nfs client
in a manner analagous to the change in r195294 for the regular nfs client.
Approved by: re (kensmith), kib (mentor)
Diffstat (limited to 'sys/fs/nfsclient')
-rw-r--r-- | sys/fs/nfsclient/nfs_clvnops.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/fs/nfsclient/nfs_clvnops.c b/sys/fs/nfsclient/nfs_clvnops.c index f69be4d..bf6ec85 100644 --- a/sys/fs/nfsclient/nfs_clvnops.c +++ b/sys/fs/nfsclient/nfs_clvnops.c @@ -1111,9 +1111,11 @@ nfs_lookup(struct vop_lookup_args *ap) ltype = VOP_ISLOCKED(dvp); error = vfs_busy(mp, MBF_NOWAIT); if (error != 0) { + vfs_ref(mp); VOP_UNLOCK(dvp, 0); error = vfs_busy(mp, 0); vn_lock(dvp, ltype | LK_RETRY); + vfs_rel(mp); if (error == 0 && (dvp->v_iflag & VI_DOOMED)) { vfs_unbusy(mp); error = ENOENT; |