From 81846eae9c1ead2fd3b85f87fd20d383fc28f037 Mon Sep 17 00:00:00 2001 From: jeff Date: Tue, 22 Feb 2005 23:56:42 +0000 Subject: - Add VOP locking asserts in several functions that have been implicated in recent deadlocks. --- sys/ufs/ffs/ffs_inode.c | 3 +++ sys/ufs/ffs/ffs_softdep.c | 2 ++ 2 files changed, 5 insertions(+) (limited to 'sys/ufs') diff --git a/sys/ufs/ffs/ffs_inode.c b/sys/ufs/ffs/ffs_inode.c index 50c20ca..a338bda 100644 --- a/sys/ufs/ffs/ffs_inode.c +++ b/sys/ufs/ffs/ffs_inode.c @@ -161,6 +161,8 @@ ffs_truncate(vp, length, flags, cred, td) fs = oip->i_fs; ump = oip->i_ump; + ASSERT_VOP_LOCKED(vp, "ffs_truncate"); + if (length < 0) return (EINVAL); /* @@ -277,6 +279,7 @@ ffs_truncate(vp, length, flags, cred, td) #endif softdep_setup_freeblocks(oip, length, needextclean ? IO_EXT | IO_NORMAL : IO_NORMAL); + ASSERT_VOP_LOCKED(vp, "ffs_truncate1"); vinvalbuf(ovp, needextclean ? 0 : V_NORMAL, td, 0, 0); vnode_pager_setsize(vp, 0); oip->i_flag |= IN_CHANGE | IN_UPDATE; diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index 1462ce0..2ebfa95 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -1842,6 +1842,7 @@ softdep_setup_allocindir_page(ip, lbn, bp, ptrno, newblkno, oldblkno, nbp) struct allocindir *aip; struct pagedep *pagedep; + ASSERT_VOP_LOCKED(ITOV(ip), "softdep_setup_allocindir_page"); aip = newallocindir(ip, ptrno, newblkno, oldblkno); ACQUIRE_LOCK(&lk); /* @@ -1871,6 +1872,7 @@ softdep_setup_allocindir_meta(nbp, ip, bp, ptrno, newblkno) { struct allocindir *aip; + ASSERT_VOP_LOCKED(ITOV(ip), "softdep_setup_allocindir_meta"); aip = newallocindir(ip, ptrno, newblkno, 0); ACQUIRE_LOCK(&lk); WORKLIST_INSERT(&nbp->b_dep, &aip->ai_list); -- cgit v1.1