summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/ufs/ufs/ufs_extattr.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/sys/ufs/ufs/ufs_extattr.c b/sys/ufs/ufs/ufs_extattr.c
index 2d8ec43..83d9662 100644
--- a/sys/ufs/ufs/ufs_extattr.c
+++ b/sys/ufs/ufs/ufs_extattr.c
@@ -277,17 +277,15 @@ ufs_extattr_lookup(struct vnode *start_dvp, int lockparent, char *dirname,
* Error condition, may have to release the lock on the parent
* if ufs_lookup() didn't.
*/
- if (!(cnp.cn_flags & PDIRUNLOCK) &&
- (lockparent == UE_GETDIR_LOCKPARENT_DONT))
+ if (lockparent == UE_GETDIR_LOCKPARENT_DONT)
VOP_UNLOCK(start_dvp, 0, td);
/*
* Check that ufs_lookup() didn't release the lock when we
* didn't want it to.
*/
- if ((cnp.cn_flags & PDIRUNLOCK) &&
- (lockparent == UE_GETDIR_LOCKPARENT))
- panic("ufs_extattr_lookup: lockparent but PDIRUNLOCK");
+ if (lockparent == UE_GETDIR_LOCKPARENT)
+ ASSERT_VOP_LOCKED(start_dvp, "ufs_extattr_lookup");
return (error);
}
@@ -296,14 +294,11 @@ ufs_extattr_lookup(struct vnode *start_dvp, int lockparent, char *dirname,
panic("ufs_extattr_lookup: target_vp == start_dvp");
*/
- if (target_vp != start_dvp &&
- !(cnp.cn_flags & PDIRUNLOCK) &&
- (lockparent == UE_GETDIR_LOCKPARENT_DONT))
- panic("ufs_extattr_lookup: !lockparent but !PDIRUNLOCK");
+ if (target_vp != start_dvp && lockparent == UE_GETDIR_LOCKPARENT_DONT)
+ VOP_UNLOCK(start_dvp, 0, td);
- if ((cnp.cn_flags & PDIRUNLOCK) &&
- (lockparent == UE_GETDIR_LOCKPARENT))
- panic("ufs_extattr_lookup: lockparent but PDIRUNLOCK");
+ if (lockparent == UE_GETDIR_LOCKPARENT)
+ ASSERT_VOP_LOCKED(start_dvp, "ufs_extattr_lookup");
/* printf("ufs_extattr_lookup: success\n"); */
*vp = target_vp;
OpenPOWER on IntegriCloud