>
>
> On Sun, 26 Aug 2001, Andi Kleen wrote:
>
> >
> > Hi,
> >
> > I just tripped over a bug with 2.4.9+XFS, which I believe is a generic
> > problem. For some unrelated reason the XFS ->read_super failed. After
> > that every df caused an kernel oops in super.c/get_filesystem_info.
> >
> > MANGLE(tmp->mnt_sb->s_type->name);
> >
> > In this ->s_type was NULL. The error handling path of read_super sets
> > s_type to NULL, but the super block was still in the list of some mount
> > with that zero s_type.
> > I unfortunately don't have time to track the exact cause down now, but I gu
> ess
> > it should be debuggable with this information.
>
> Does xfs_read_super(), by any chance, have an exit path where it
> * sets ->s_root,
> * fails _after_ that (i.e. past the point when we had successfully
> allocated root dentry) and
> * forgets to clean sb->s_root?
Yes it did, there was one way out which did that. Adding the dput and
clear of the s_root field should fix it I think, although I did not
go to the extent of replicating the failure.
Thanks
Steve
|