aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorKirk McKusick <mckusick@FreeBSD.org>2000-01-10 08:39:03 +0000
committerKirk McKusick <mckusick@FreeBSD.org>2000-01-10 08:39:03 +0000
commit26e5527c86f0cc7ef3362dbe932207eaa07cea26 (patch)
tree7a797d38dfb88464dce77e59c777acf57911bd3f /sys
parentd0e1503b8e6c8d3628128da9277da92a8502f0ba (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/contrib/softupdates/ffs_softdep.c8
-rw-r--r--sys/ufs/ffs/ffs_softdep.c8
2 files changed, 10 insertions, 6 deletions
diff --git a/sys/contrib/softupdates/ffs_softdep.c b/sys/contrib/softupdates/ffs_softdep.c
index dee1891d71993..8f7e3f2977074 100644
--- a/sys/contrib/softupdates/ffs_softdep.c
+++ b/sys/contrib/softupdates/ffs_softdep.c
@@ -1663,11 +1663,13 @@ softdep_setup_freeblocks(ip, length)
* still have a bitmap dependency, then the inode has never been
* written to disk, so we can process the freeblks immediately.
*/
- if ((inodedep->id_state & DEPCOMPLETE) == 0)
+ if ((inodedep->id_state & DEPCOMPLETE) == 0) {
+ FREE_LOCK(&lk);
handle_workitem_freeblocks(freeblks);
- else
+ } else {
WORKLIST_INSERT(&inodedep->id_bufwait, &freeblks->fb_list);
- FREE_LOCK(&lk);
+ FREE_LOCK(&lk);
+ }
bdwrite(bp);
/*
* We must wait for any I/O in progress to finish so that
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index dee1891d71993..8f7e3f2977074 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -1663,11 +1663,13 @@ softdep_setup_freeblocks(ip, length)
* still have a bitmap dependency, then the inode has never been
* written to disk, so we can process the freeblks immediately.
*/
- if ((inodedep->id_state & DEPCOMPLETE) == 0)
+ if ((inodedep->id_state & DEPCOMPLETE) == 0) {
+ FREE_LOCK(&lk);
handle_workitem_freeblocks(freeblks);
- else
+ } else {
WORKLIST_INSERT(&inodedep->id_bufwait, &freeblks->fb_list);
- FREE_LOCK(&lk);
+ FREE_LOCK(&lk);
+ }
bdwrite(bp);
/*
* We must wait for any I/O in progress to finish so that