Re: 2.4.14 still not making fs dirty when it should

Andrew Morton
2001-11-29T20:42:22Z

Mike Castle wrote:
>
> On Thu, Nov 29, 2001 at 12:22:49PM -0800, Andrew Morton wrote:
> > What happens is that the superblock is altered in-memory
> > to say "the filesystem needs checking", but it's not written
> > out to disk.
> >
> > So other things can come in, alter the fs, get written out *before*
> > the superblock and then you crash. fsck won't be run, and the
> > filesystem is left in an inconsistent state.
>
> Ok. I could see this being a bad thing.
>
> I could also see the easiest thing to implement would be updating the super
> block on mount.
>
> However, is this a case where Linux tries not to update the superblock
> about being dirty until something has actually changed (ie, be slightly
> smarter), and that's not working, or is the superblock simply not being
> updated on mount?

Linux alters the superblock contents and marks it as needing
writeback immediately, upon mount. But the write to disk
doesn't actually happen for up to thirty seconds. We need to
write it to disk immediately, within mount, as soon as we've
set it to say "needs fsck".