Let's start from fsync_super() then.
Reiser4 has data journalling.
When ->writepage() is called on dirtied page, page joins transaction.
During umount all out-standing transaction have to be committed. But if
file were mmapped, then, at the moment of the call to ->kill_super()
pages can be dirtied without ->writepage() ever called on them.
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().
>
> PS: Cc'ing a posting on a public list to a subscribers-only one is
> generally not a nice thing to do... Cc: trimmed.
Arghh... Sorry, it will be fixed... soon.
>
Nikita.
-
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/