svn commit: r271161 - in stable/10/sys: kern sys
Konstantin Belousov
kib at FreeBSD.org
Fri Sep 5 13:22:29 UTC 2014
Author: kib
Date: Fri Sep 5 13:22:28 2014
New Revision: 271161
URL: http://svnweb.freebsd.org/changeset/base/271161
Log:
Add function and wrapper to switch lockmgr and vnode lock back to
auto-promotion of shared to exclusive.
Approved by: re (gjb)
Modified:
stable/10/sys/kern/kern_lock.c
stable/10/sys/sys/lockmgr.h
stable/10/sys/sys/vnode.h
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/kern/kern_lock.c
==============================================================================
--- stable/10/sys/kern/kern_lock.c Fri Sep 5 11:48:32 2014 (r271160)
+++ stable/10/sys/kern/kern_lock.c Fri Sep 5 13:22:28 2014 (r271161)
@@ -419,6 +419,14 @@ lockallowshare(struct lock *lk)
}
void
+lockdisableshare(struct lock *lk)
+{
+
+ lockmgr_assert(lk, KA_XLOCKED);
+ lk->lock_object.lo_flags |= LK_NOSHARE;
+}
+
+void
lockallowrecurse(struct lock *lk)
{
Modified: stable/10/sys/sys/lockmgr.h
==============================================================================
--- stable/10/sys/sys/lockmgr.h Fri Sep 5 11:48:32 2014 (r271160)
+++ stable/10/sys/sys/lockmgr.h Fri Sep 5 13:22:28 2014 (r271161)
@@ -77,6 +77,7 @@ void lockallowrecurse(struct lock *lk);
void lockallowshare(struct lock *lk);
void lockdestroy(struct lock *lk);
void lockdisablerecurse(struct lock *lk);
+void lockdisableshare(struct lock *lk);
void lockinit(struct lock *lk, int prio, const char *wmesg, int timo,
int flags);
#ifdef DDB
Modified: stable/10/sys/sys/vnode.h
==============================================================================
--- stable/10/sys/sys/vnode.h Fri Sep 5 11:48:32 2014 (r271160)
+++ stable/10/sys/sys/vnode.h Fri Sep 5 13:22:28 2014 (r271161)
@@ -428,6 +428,7 @@ extern struct vattr va_null; /* predefi
#define VN_LOCK_AREC(vp) lockallowrecurse((vp)->v_vnlock)
#define VN_LOCK_ASHARE(vp) lockallowshare((vp)->v_vnlock)
+#define VN_LOCK_DSHARE(vp) lockdisableshare((vp)->v_vnlock)
#endif /* _KERNEL */
More information about the svn-src-stable-10
mailing list