tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: panic: ffs_valloc: dup alloc
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
dyoung%ojctech.com@localhost 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 ? */
Home |
Main Index |
Thread Index |
Old Index