On Tue, Oct 05, 2010 at 04:23:39PM -0500, KAMADA Ken'ichi wrote: > At Fri, 19 Mar 2010 17:51:46 -0500, myself wrote: > > > > I'm seeing a panic: ffs_valloc: dup alloc. > > Does anyone have a similar panic? > > > > The kernel is -current from March 15. > > I cannot repeat the panic reliably, but it seems to occur after > > suspend/resume (immediately or several minutes later). > > The panic occured in /home, which is a ffs on cgd on wd. > > "fsck -f" does not report any error on it. > > I finally found a clue for this problem. > With the attached patch [1], my system seems to be stable again.
That patch will break some things. Try this patch, instead? Dave -- David Young OJC Technologies dyo...@ojctech.com Urbana, IL * (217) 278-3933
Index: sys/dev/ata/wd.c =================================================================== RCS file: /cvsroot/src/sys/dev/ata/wd.c,v retrieving revision 1.384 diff -u -p -r1.384 wd.c --- sys/dev/ata/wd.c 24 Feb 2010 22:37:57 -0000 1.384 +++ sys/dev/ata/wd.c 12 Oct 2010 16:28:40 -0000 @@ -489,9 +489,10 @@ wdstrategy(struct buf *bp) } /* If device invalidated (e.g. media change, door open, - * device suspension), then error. + * device detachment), then error. */ - if ((wd->sc_flags & WDF_LOADED) == 0 || !device_is_active(wd->sc_dev)) { + if ((wd->sc_flags & WDF_LOADED) == 0 || + !device_is_enabled(wd->sc_dev)) { bp->b_error = EIO; goto done; } @@ -573,6 +574,10 @@ wdstart(void *arg) ATADEBUG_PRINT(("wdstart %s\n", device_xname(wd->sc_dev)), DEBUG_XFERS); + + if (!device_is_active(wd->sc_dev)) + return; + while (wd->openings > 0) { /* Is there a buf for us ? */