summaryrefslogtreecommitdiff
path: root/sys/ufs/lfs/lfs_segment.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/ufs/lfs/lfs_segment.c')
-rw-r--r--sys/ufs/lfs/lfs_segment.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/ufs/lfs/lfs_segment.c b/sys/ufs/lfs/lfs_segment.c
index 5c0b5befe43..39c4114ba06 100644
--- a/sys/ufs/lfs/lfs_segment.c
+++ b/sys/ufs/lfs/lfs_segment.c
@@ -2124,6 +2124,9 @@ lfs_writeseg(struct lfs *fs, struct segment *sp)
bp = *bpp;
if (bp->b_iodone != NULL) { /* UBC or malloced buffer */
bp->b_cflags |= BC_BUSY;
+#ifdef LOCKDOC_VFS
+ lockdoc_log_lock(P_WRITE, &(bp->b_cflags), __FILE__, __LINE__, __func__, "b_cflags", 0);
+#endif
continue;
}
@@ -2136,6 +2139,9 @@ lfs_writeseg(struct lfs *fs, struct segment *sp)
cv_wait(&bp->b_busy, &bufcache_lock);
}
bp->b_cflags |= BC_BUSY;
+#ifdef LOCKDOC_VFS
+ lockdoc_log_lock(P_WRITE, &(bp->b_cflags), __FILE__, __LINE__, __func__, "b_cflags", 0);
+#endif
mutex_exit(&bufcache_lock);
unbusybp = NULL;
@@ -2201,6 +2207,9 @@ lfs_writeseg(struct lfs *fs, struct segment *sp)
mutex_enter(&bufcache_lock);
if (unbusybp != NULL) {
unbusybp->b_cflags &= ~BC_BUSY;
+#ifdef LOCKDOC_VFS
+ lockdoc_log_lock(V_WRITE, &(unbusybp->b_cflags), __FILE__, __LINE__, __func__, "b_cflags", 0);
+#endif
if (unbusybp->b_cflags & BC_WANTED)
cv_broadcast(&bp->b_busy);
}
@@ -2280,6 +2289,9 @@ lfs_writeseg(struct lfs *fs, struct segment *sp)
cbp->b_flags |= B_ASYNC;
cbp->b_cflags |= BC_BUSY;
+#ifdef LOCKDOC_VFS
+ lockdoc_log_lock(P_WRITE, &(cbp->b_cflags), __FILE__, __LINE__, __func__, "b_cflags", 0);
+#endif
cbp->b_bcount = 0;
KASSERTMSG((bpp - sp->bpp <=
@@ -2431,6 +2443,9 @@ lfs_writesuper(struct lfs *fs, daddr_t daddr)
LFS_SBPAD - sizeof(struct dlfs));
bp->b_cflags |= BC_BUSY;
+#ifdef LOCKDOC_VFS
+ lockdoc_log_lock(P_WRITE, &(bp->b_cflags), __FILE__, __LINE__, __func__, "b_cflags", 0);
+#endif
bp->b_flags = (bp->b_flags & ~B_READ) | B_ASYNC;
bp->b_oflags &= ~(BO_DONE | BO_DELWRI);
bp->b_error = 0;