aboutsummaryrefslogtreecommitdiff
path: root/sys/sys/buf.h
diff options
context:
space:
mode:
authorJeff Roberson <jeff@FreeBSD.org>2005-06-13 00:48:58 +0000
committerJeff Roberson <jeff@FreeBSD.org>2005-06-13 00:48:58 +0000
commit8145dc31601e466b89908cb18c8b1d4ddbecd55c (patch)
tree130780e668b12145446003a50dd4d17d42832fcf /sys/sys/buf.h
parentd598b04d44c0169b93106c6b3a6f6e6174ada682 (diff)
downloadsrc-8145dc31601e466b89908cb18c8b1d4ddbecd55c.tar.gz
src-8145dc31601e466b89908cb18c8b1d4ddbecd55c.zip
- We should never unlock a buf before we've cleared B_REMFREE. I believe
this is happening at the moment and sometimes causing panics later on the package cluster when we bremfree() a buf whose delayed bremfree() did not previously happen. Sponsored by: Isilon Systems, Inc.
Notes
Notes: svn path=/head/; revision=147329
Diffstat (limited to 'sys/sys/buf.h')
-rw-r--r--sys/sys/buf.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/sys/buf.h b/sys/sys/buf.h
index 9f8fc2f4c91c..a6ba1c01022a 100644
--- a/sys/sys/buf.h
+++ b/sys/sys/buf.h
@@ -309,6 +309,8 @@ BUF_UNLOCK(struct buf *bp)
int s;
s = splbio();
+ KASSERT((bp->b_flags & B_REMFREE) == 0,
+ ("BUF_UNLOCK %p while B_REMFREE is still set.", bp));
lockmgr(&(bp)->b_lock, LK_RELEASE, NULL, curthread);
splx(s);
}