Re: corruption

Andrew Morton
2000-12-01T13:01:20Z

Jens Axboe wrote:
>
> On Fri, Dec 01 2000, Andrew Morton wrote:
> > Andrew Morton wrote:
> > >
> > > I bet this'll catch it:
> > >
> > > --- include/linux/list.h.orig Fri Dec 1 08:33:36 2000
> > > +++ include/linux/list.h Fri Dec 1 08:33:55 2000
> > > @@ -90,6 +90,7 @@
> > > static __inline__ void list_del(struct list_head *entry)
> > > {
> > > __list_del(entry->prev, entry->next);
> > > + entry->next = entry->prev = 0;
> > > }
> > >
> > > /**
> > >
> > > First person to send a ksymoops trace gets a cookie.
> >
> > mmmm... choc-chip.
> >
> > With the above patch applied the machine crashed after an hour. Crashed
> > a second time during the e2fsck. gdb backtrace:
>
> Very interesting. IDE / SCSI?

hmm.. Overlapping emails.

The crash with e2fsck was easily repeatable with the above patch. Just
dirty a few buffers and run /sbin/sync. It's due to the __make_request
queue_head thing which you fixed in test12-pre3. Yes, this was IDE.

However the original problem of a list_del being performed on a wild
pointer is being seen on SCSI systems. I expect the above patch will
catch it if it's still happening.