diff options
author | kan <kan@FreeBSD.org> | 2003-08-28 15:48:15 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2003-08-28 15:48:15 +0000 |
commit | 96bae694ed39fd027a149178c08fbdd83765138b (patch) | |
tree | 80f90efb1444778a8c36b472ca7c6878ac8c8258 | |
parent | 66f7142c64a948eae88f9d1692f0b37c5be14c52 (diff) | |
download | FreeBSD-src-96bae694ed39fd027a149178c08fbdd83765138b.zip FreeBSD-src-96bae694ed39fd027a149178c08fbdd83765138b.tar.gz |
Do not return with vnode interlock held.
Reviewed by: rwatson
-rw-r--r-- | sys/kern/vfs_bio.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index 296c9a6..77f47cb 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -779,6 +779,7 @@ bwrite(struct buf * bp) VI_LOCK(bp->b_vp); if (bp->b_vflags & BV_BKGRDINPROG) { if (bp->b_flags & B_ASYNC) { + VI_UNLOCK(bp->b_vp); splx(s); bdwrite(bp); return (0); @@ -1505,6 +1506,7 @@ bqrelse(struct buf * bp) * the buffer (most importantly: the wired pages * making up its backing store) *now*. */ + VI_UNLOCK(bp->b_vp); mtx_unlock(&bqlock); splx(s); brelse(bp); |