summaryrefslogtreecommitdiff
path: root/sys/ufs
diff options
context:
space:
mode:
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ffs/ffs_snapshot.c3
-rw-r--r--sys/ufs/ffs/ffs_vnops.c3
-rw-r--r--sys/ufs/lfs/lfs_bio.c17
-rw-r--r--sys/ufs/lfs/lfs_segment.c15
-rw-r--r--sys/ufs/lfs/lfs_vfsops.c3
5 files changed, 37 insertions, 4 deletions
diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c
index 9d4c46d475d..db8d4dfb471 100644
--- a/sys/ufs/ffs/ffs_snapshot.c
+++ b/sys/ufs/ffs/ffs_snapshot.c
@@ -2195,6 +2195,9 @@ rwfsblk(struct vnode *vp, int flags, void *data, daddr_t lbn)
nbp->b_proc = NULL;
nbp->b_dev = ip->i_devvp->v_rdev;
SET(nbp->b_cflags, BC_BUSY); /* mark buffer busy */
+#ifdef LOCKDOC_VFS
+ lockdoc_log_lock(P_WRITE, &(nbp->b_cflags), __FILE__, __LINE__, __func__, "b_cflags", 0);
+#endif
bdev_strategy(nbp);
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
index 9e14caa0bc1..340860c86ac 100644
--- a/sys/ufs/ffs/ffs_vnops.c
+++ b/sys/ufs/ffs/ffs_vnops.c
@@ -379,6 +379,9 @@ ffs_fsync(void *v)
(bp->b_oflags & BO_DELWRI) == 0)
continue;
bp->b_cflags |= BC_BUSY | BC_VFLUSH;
+#ifdef LOCKDOC_VFS
+ lockdoc_log_lock(P_WRITE, &(bp->b_cflags), __FILE__, __LINE__, __func__, "b_cflags", 0);
+#endif
mutex_exit(&bufcache_lock);
bawrite(bp);
mutex_enter(&bufcache_lock);
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);
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;
diff --git a/sys/ufs/lfs/lfs_vfsops.c b/sys/ufs/lfs/lfs_vfsops.c
index 324f7af143f..e47d761b76e 100644
--- a/sys/ufs/lfs/lfs_vfsops.c
+++ b/sys/ufs/lfs/lfs_vfsops.c
@@ -2127,6 +2127,9 @@ lfs_gop_write(struct vnode *vp, struct vm_page **pgs, int npages,
mbp->b_data = (void *)kva;
mbp->b_resid = mbp->b_bcount = bytes;
mbp->b_cflags |= BC_BUSY|BC_AGE;
+#ifdef LOCKDOC_VFS
+ lockdoc_log_lock(P_WRITE, &(mbp->b_cflags), __FILE__, __LINE__, __func__, "b_cflags", 0);
+#endif
mbp->b_iodone = uvm_aio_aiodone;
bp = NULL;