Missing FREE_LOCK call before handle_workitem_freeblocks.

Submitted by:	"Kenneth D. Merry" <ken@kdm.org>
This commit is contained in:
mckusick 2000-01-10 08:39:03 +00:00
parent a5aad10b74
commit b09e759229
2 changed files with 10 additions and 6 deletions

View File

@ -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

View File

@ -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