summaryrefslogtreecommitdiffstats
path: root/sys/fs/unionfs/union_subr.c
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2001-12-20 22:42:27 +0000
committerdillon <dillon@FreeBSD.org>2001-12-20 22:42:27 +0000
commitac9876d609290ddd585a1e5a67550061f01c20dd (patch)
tree74464ed2703c6925992ebe509294859864e96118 /sys/fs/unionfs/union_subr.c
parent53b1a7ecefc98fa3a2e71925a3be359d4873214b (diff)
downloadFreeBSD-src-ac9876d609290ddd585a1e5a67550061f01c20dd.zip
FreeBSD-src-ac9876d609290ddd585a1e5a67550061f01c20dd.tar.gz
Fix a BUF_TIMELOCK race against BUF_LOCK and fix a deadlock in vget()
against VM_WAIT in the pageout code. Both fixes involve adjusting the lockmgr's timeout capability so locks obtained with timeouts do not interfere with locks obtained without a timeout. Hopefully MFC: before the 4.5 release
Diffstat (limited to 'sys/fs/unionfs/union_subr.c')
-rw-r--r--sys/fs/unionfs/union_subr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/fs/unionfs/union_subr.c b/sys/fs/unionfs/union_subr.c
index 5919672..8320f4a 100644
--- a/sys/fs/unionfs/union_subr.c
+++ b/sys/fs/unionfs/union_subr.c
@@ -572,7 +572,7 @@ loop:
un = VTOUNION(*vpp);
bzero(un, sizeof(*un));
- lockinit(&un->un_lock, PVFS, "unlock", 0, 0);
+ lockinit(&un->un_lock, PVFS, "unlock", VLKTIMEOUT, 0);
vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY, td);
un->un_vnode = *vpp;
OpenPOWER on IntegriCloud