From 9167141244060875ea1ba48a8b532033f0599f71 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Wed, 2 May 2007 00:39:52 +0000 Subject: [PATCH] Lock vnode using cn_lkflags in case the caller wants the vnode to be shared-locked. --- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c | 2 +- sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c index 9660d4ecb22a..95a1da705ee2 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c @@ -1111,7 +1111,7 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, struct componentname *cnp, if (error == 0 && (nm[0] != '.' || nm[1] != '\0')) { if (cnp->cn_flags & ISDOTDOT) VOP_UNLOCK(dvp, 0, td); - error = vn_lock(*vpp, LK_EXCLUSIVE, td); + error = vn_lock(*vpp, cnp->cn_lkflags, td); if (cnp->cn_flags & ISDOTDOT) vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td); if (error != 0) { diff --git a/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c b/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c index 9660d4ecb22a..95a1da705ee2 100644 --- a/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c +++ b/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c @@ -1111,7 +1111,7 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, struct componentname *cnp, if (error == 0 && (nm[0] != '.' || nm[1] != '\0')) { if (cnp->cn_flags & ISDOTDOT) VOP_UNLOCK(dvp, 0, td); - error = vn_lock(*vpp, LK_EXCLUSIVE, td); + error = vn_lock(*vpp, cnp->cn_lkflags, td); if (cnp->cn_flags & ISDOTDOT) vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td); if (error != 0) {