> Why can't a filesystem hacker back it out until his return? Things are > not getting better and this is tripping up more and more people. The enclosed patch might help somewhat against the "active pagedep" panics introduced in revision 1.98 of ffs_softdep.c. Instead of a panic, a message is printed and the pagedep structure isn't freed (it will be freed later by free_newdirblk()). - Tor Egge
Index: sys/ufs/ffs/ffs_softdep.c =================================================================== RCS file: /home/ncvs/src/sys/ufs/ffs/ffs_softdep.c,v retrieving revision 1.98 diff -u -r1.98 ffs_softdep.c --- sys/ufs/ffs/ffs_softdep.c 2001/06/05 01:49:37 1.98 +++ sys/ufs/ffs/ffs_softdep.c 2001/06/07 18:30:16 @@ -1932,14 +1932,16 @@ WORKLIST_INSERT(&inodedep->id_bufwait, &dirrem->dm_list); } + + WORKLIST_REMOVE(&pagedep->pd_list); if ((pagedep->pd_state & NEWBLOCK) != 0) { - FREE_LOCK(&lk); - panic("deallocate_dependencies: " - "active pagedep"); + /* XXX: Wait for newdirblk to be freed */ + printf("deallocate_dependencies: " + "active pagedep\n"); + } else { + LIST_REMOVE(pagedep, pd_hash); + WORKITEM_FREE(pagedep, D_PAGEDEP); } - WORKLIST_REMOVE(&pagedep->pd_list); - LIST_REMOVE(pagedep, pd_hash); - WORKITEM_FREE(pagedep, D_PAGEDEP); continue; case D_ALLOCINDIR: