diff options
author | tanimura <tanimura@FreeBSD.org> | 2005-07-09 13:52:49 +0000 |
---|---|---|
committer | tanimura <tanimura@FreeBSD.org> | 2005-07-09 13:52:49 +0000 |
commit | f03d3eb58cdc293249a6a2dc1db70c9f79379768 (patch) | |
tree | 69a80fb6cab728afed64cc8365b84c91fc05cf5b | |
parent | 5910b0e97008755b1f687974ad75e35924330296 (diff) | |
download | FreeBSD-src-f03d3eb58cdc293249a6a2dc1db70c9f79379768.zip FreeBSD-src-f03d3eb58cdc293249a6a2dc1db70c9f79379768.tar.gz |
Regrab dvp only when ISDOTDOT.
Approved by: re (scottl)
-rw-r--r-- | sys/fs/udf/udf_vnops.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/fs/udf/udf_vnops.c b/sys/fs/udf/udf_vnops.c index a3f6e3d..cd0dc07 100644 --- a/sys/fs/udf/udf_vnops.c +++ b/sys/fs/udf/udf_vnops.c @@ -915,7 +915,8 @@ lookloop: if (flags & ISDOTDOT) VOP_UNLOCK(dvp, 0, a->a_cnp->cn_thread); error = udf_vget(udfmp->im_mountp, id, LK_EXCLUSIVE, &tdp); - vn_lock(dvp, LK_EXCLUSIVE|LK_RETRY, a->a_cnp->cn_thread); + if (flags & ISDOTDOT) + vn_lock(dvp, LK_EXCLUSIVE|LK_RETRY, a->a_cnp->cn_thread); if (!error) { /* * Remember where this entry was if it's the final |