Re: 2.4.15-pre9 breakage (inode.c)

Alexander Viro (viro@math.psu.edu)
Sat, 24 Nov 2001 03:05:02 -0500 (EST)


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.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/