Re: 2.4.15-pre9 breakage (inode.c)

Alexander Viro
2001-11-24T08:05:32Z

On Sat, 24 Nov 2001, Andrea Arcangeli wrote:

> > Notice that it fixes _all_ problems with stale inodes, with only one rule
> > for fs code - "don't call iput() when ->clear_inode() doesn't work". Your
> > variant requires funnier things - "if at some point ->clear_inode()
> > may stop working make sure to call invalidate_inodes()" in addition to
> > the rule above.
>
> the rule I add is "if ->clear_inode is really needed, just don't clear
> s_op before returning null from read_super" and that requirement looks
> fine.

It's not that simple. You may need the per-superblock data structures for
->clear_inode() to work.

In any case, it _is_ additional rule for no good reason. "inode may stay
in icache after iput() only when fs is up and running" is a warranty that
is trivial to provide and that removes a source of hard-to-debug screwups
in fs code.