diff options
author | mckusick <mckusick@FreeBSD.org> | 2004-02-23 19:05:05 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2004-02-23 19:05:05 +0000 |
commit | 962d7003116aef5d0025babb6ba17d2b42bc7fd1 (patch) | |
tree | 65368d24b7faa79eb71caf9f3d2f831be0c329e7 | |
parent | e9aceed4ac92f319877110271c11960d9ff312df (diff) | |
download | FreeBSD-src-962d7003116aef5d0025babb6ba17d2b42bc7fd1.zip FreeBSD-src-962d7003116aef5d0025babb6ba17d2b42bc7fd1.tar.gz |
A more accurate test in the new ufs_lock than that in 1.235.
-rw-r--r-- | sys/ufs/ufs/ufs_vnops.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c index b02b2ad..50adc58 100644 --- a/sys/ufs/ufs/ufs_vnops.c +++ b/sys/ufs/ufs/ufs_vnops.c @@ -1989,8 +1989,9 @@ ufs_lock(ap) struct vnode *vp = ap->a_vp; int flags = ap->a_flags; - if ((VTOI(vp)->i_flags & SF_SNAPSHOT) && (flags & LK_SHARED)) { - flags &= ~LK_SHARED; + if ((VTOI(vp)->i_flags & SF_SNAPSHOT) && + ((flags & LK_TYPE_MASK) == LK_SHARED)) { + flags &= ~LK_TYPE_MASK; flags |= LK_EXCLUSIVE; } #ifndef DEBUG_LOCKS |