From 1f1828bc6d021f04c3bf10d973ca2d887965578e Mon Sep 17 00:00:00 2001 From: mckusick Date: Wed, 17 Feb 1999 20:01:20 +0000 Subject: fix double LIST_REMOVE; other cosmetic changes to match version 9.32. Obtained from: Jeffrey Hsu --- sys/ufs/ffs/ffs_softdep.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'sys/ufs') diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index c82f929..5b7b887 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -53,8 +53,8 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * from: @(#)ffs_softdep.c 9.28 (McKusick) 8/8/98 - * $Id: ffs_softdep.c,v 1.20 1999/01/07 16:14:10 bde Exp $ + * from: @(#)ffs_softdep.c 9.32 (McKusick) 2/17/99 + * $Id: ffs_softdep.c,v 1.21 1999/01/22 09:07:32 dg Exp $ */ /* @@ -2230,15 +2230,15 @@ softdep_change_directoryentry_offset(dp, base, oldloc, newloc, entrysize) dap, da_pdlist); break; } - if (dap == NULL) { - for (dap = LIST_FIRST(&pagedep->pd_pendinghd); - dap; dap = LIST_NEXT(dap, da_pdlist)) { - if (dap->da_offset == oldoffset) { - dap->da_offset = newoffset; - break; - } - } - } + if (dap == NULL) { + for (dap = LIST_FIRST(&pagedep->pd_pendinghd); + dap; dap = LIST_NEXT(dap, da_pdlist)) { + if (dap->da_offset == oldoffset) { + dap->da_offset = newoffset; + break; + } + } + } done: bcopy(oldloc, newloc, entrysize); FREE_LOCK(&lk); @@ -3000,8 +3000,9 @@ softdep_disk_write_complete(bp) indirdep->ir_state &= ~UNDONE; indirdep->ir_state |= ATTACHED; while ((aip = LIST_FIRST(&indirdep->ir_donehd)) != 0) { - LIST_REMOVE(aip, ai_next); handle_allocindir_partdone(aip); + if (aip == LIST_FIRST(&indirdep->ir_donehd)) + panic("disk_write_complete: not gone"); } WORKLIST_INSERT(&reattach, wk); bdirty(bp); -- cgit v1.1