Re: [PATCH]: reiser4 [8/8] reiser4 code

Alexander Viro (viro@math.psu.edu)
Thu, 31 Oct 2002 12:26:14 -0500 (EST)


On Thu, 31 Oct 2002, Nikita Danilov wrote:

> generic_shutdown_super() calls fsync_super(sb) (which will call
> ->writepage() on each dirty page) and then invalidate_inodes().
>
> Reiser4 has commit out-standing transactions -between- these two points:
> after ->writepage() has been called on all dirty pages, but before
> inodes were destroyed. Thus, we cannot use
> kill_block_super()/generic_shutdown_super().

Why don't you do that from within fsync_super()? That would be much
more natural point for such stuff...

I hadn't looked into akpm's stuff in fs-writeback.c for a while, but
if one can't stick such flush point in there I'd argue that this is
a bug that needs to be fixed - either there or by providing explicit
callback from fsync_super().

Note that sync(2) doesn't get anywhere near your ->kill_sb() code,
so you want fsync_super() do the right thing anyway - regardless of the
umount(2) situation.

-
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/