summaryrefslogtreecommitdiff
path: root/sys/ufs/lfs/lfs_bio.c
diff options
context:
space:
mode:
authorMerlin Scholz <merlin@scholz.ruhr>2023-08-19 19:16:22 +0200
committerMerlin Scholz <merlin@scholz.ruhr>2023-08-19 19:16:22 +0200
commite7b3826cda40b7e543318c19b9093dcceb8b4237 (patch)
treebf61ebee0cfbd1f3e2f4f62e00ef7ff655f1aa5d /sys/ufs/lfs/lfs_bio.c
parent365daf5cefc0591283d5625e2e15b7e532568c33 (diff)
Add logging for buf->b_cflags BC_BUSY changeslockdoc-10.99.5-vfs-0.3
Diffstat (limited to 'sys/ufs/lfs/lfs_bio.c')
-rw-r--r--sys/ufs/lfs/lfs_bio.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/sys/ufs/lfs/lfs_bio.c b/sys/ufs/lfs/lfs_bio.c
index 5169d09a673..06bd348b340 100644
--- a/sys/ufs/lfs/lfs_bio.c
+++ b/sys/ufs/lfs/lfs_bio.c
@@ -434,9 +434,12 @@ lfs_bwrite_ext(struct buf *bp, int flags)
bp->b_error = 0;
mutex_enter(&bufcache_lock);
LFS_UNLOCK_BUF(bp);
- if (LFS_IS_MALLOC_BUF(bp))
+ if (LFS_IS_MALLOC_BUF(bp)){
bp->b_cflags &= ~BC_BUSY;
- else
+#ifdef LOCKDOC_VFS
+ lockdoc_log_lock(V_WRITE, &(bp->b_cflags), __FILE__, __LINE__, __func__, "b_cflags", 0);
+#endif
+ } else
brelsel(bp, 0);
mutex_exit(&bufcache_lock);
return (fs->lfs_ronly ? EROFS : 0);
@@ -481,9 +484,12 @@ lfs_bwrite_ext(struct buf *bp, int flags)
mutex_enter(&bufcache_lock);
}
- if (bp->b_iodone != NULL)
+ if (bp->b_iodone != NULL) {
bp->b_cflags &= ~BC_BUSY;
- else
+#ifdef LOCKDOC_VFS
+ lockdoc_log_lock(V_WRITE, &(bp->b_cflags), __FILE__, __LINE__, __func__, "b_cflags", 0);
+#endif
+ } else
brelsel(bp, 0);
mutex_exit(&bufcache_lock);
@@ -736,6 +742,9 @@ lfs_newbuf(struct lfs *fs, struct vnode *vp, daddr_t daddr, size_t size, int typ
bp->b_resid = 0;
bp->b_iodone = lfs_free_aiodone;
bp->b_cflags |= BC_BUSY | BC_NOCACHE;
+#ifdef LOCKDOC_VFS
+ lockdoc_log_lock(P_WRITE, &(bp->b_cflags), __FILE__, __LINE__, __func__, "b_cflags", 0);
+#endif
bp->b_private = fs;
mutex_enter(&bufcache_lock);