* [PATCH]: reiser4 [8/8] reiser4 code
@ 2002-10-31 16:02 Nikita Danilov
2002-10-31 16:08 ` Alexander Viro
0 siblings, 1 reply; 7+ messages in thread
From: Nikita Danilov @ 2002-10-31 16:02 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Linux Kernel Mailing List, Reiserfs mail-list
Hello, Linus, hyva poika,
Reiser4 code proper is 2M. Patch is available at
http://namesys.com/snapshots/2002.10.31/fs_reiser4.diff
If you want, we can send it to you as source tar ball.
Please apply,
Nikita.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH]: reiser4 [8/8] reiser4 code
2002-10-31 16:02 [PATCH]: reiser4 [8/8] reiser4 code Nikita Danilov
@ 2002-10-31 16:08 ` Alexander Viro
2002-10-31 16:12 ` Nikita Danilov
0 siblings, 1 reply; 7+ messages in thread
From: Alexander Viro @ 2002-10-31 16:08 UTC (permalink / raw)
To: Nikita Danilov
Cc: Linus Torvalds, Linux Kernel Mailing List, Reiserfs mail-list
On Thu, 31 Oct 2002, Nikita Danilov wrote:
> Hello, Linus, hyva poika,
>
> Reiser4 code proper is 2M. Patch is available at
>
> http://namesys.com/snapshots/2002.10.31/fs_reiser4.diff
>
> If you want, we can send it to you as source tar ball.
And you want that to be reviewed until tonight?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH]: reiser4 [8/8] reiser4 code
2002-10-31 16:08 ` Alexander Viro
@ 2002-10-31 16:12 ` Nikita Danilov
2002-10-31 16:26 ` Alexander Viro
0 siblings, 1 reply; 7+ messages in thread
From: Nikita Danilov @ 2002-10-31 16:12 UTC (permalink / raw)
To: Alexander Viro
Cc: Linus Torvalds, Linux Kernel Mailing List, Reiserfs mail-list
Alexander Viro writes:
>
>
> On Thu, 31 Oct 2002, Nikita Danilov wrote:
>
> > Hello, Linus, hyva poika,
> >
> > Reiser4 code proper is 2M. Patch is available at
> >
> > http://namesys.com/snapshots/2002.10.31/fs_reiser4.diff
> >
> > If you want, we can send it to you as source tar ball.
>
> And you want that to be reviewed until tonight?
>
No. But changes to the core are not very complicated. If Linus "reviews"
and accepts them life of reiser4 would be much simpler.
Nikita.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH]: reiser4 [8/8] reiser4 code
2002-10-31 16:12 ` Nikita Danilov
@ 2002-10-31 16:26 ` Alexander Viro
2002-10-31 17:00 ` Nikita Danilov
0 siblings, 1 reply; 7+ messages in thread
From: Alexander Viro @ 2002-10-31 16:26 UTC (permalink / raw)
To: Nikita Danilov; +Cc: Linus Torvalds, Linux Kernel Mailing List
On Thu, 31 Oct 2002, Nikita Danilov wrote:
> > And you want that to be reviewed until tonight?
> >
>
> No. But changes to the core are not very complicated. If Linus "reviews"
> and accepts them life of reiser4 would be much simpler.
Changes to the core consist (AFAICS) of exporting a bunch of functions
with no explanation of the way they are used - with some of them it's
really straightforward (and can go in at any point), with some one
would expect really detailed explanation and code review (your comments
regarding fsync_super() export trigger all sorts of alarms for me).
PS: Cc'ing a posting on a public list to a subscribers-only one is
generally not a nice thing to do... Cc: trimmed.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH]: reiser4 [8/8] reiser4 code
2002-10-31 16:26 ` Alexander Viro
@ 2002-10-31 17:00 ` Nikita Danilov
2002-10-31 17:26 ` Alexander Viro
0 siblings, 1 reply; 7+ messages in thread
From: Nikita Danilov @ 2002-10-31 17:00 UTC (permalink / raw)
To: Alexander Viro; +Cc: Linus Torvalds, Linux Kernel Mailing List
Alexander Viro writes:
>
>
> On Thu, 31 Oct 2002, Nikita Danilov wrote:
>
> > > And you want that to be reviewed until tonight?
> > >
> >
> > No. But changes to the core are not very complicated. If Linus "reviews"
> > and accepts them life of reiser4 would be much simpler.
>
> Changes to the core consist (AFAICS) of exporting a bunch of functions
> with no explanation of the way they are used - with some of them it's
> really straightforward (and can go in at any point), with some one
> would expect really detailed explanation and code review (your comments
> regarding fsync_super() export trigger all sorts of alarms for me).
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.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH]: reiser4 [8/8] reiser4 code
2002-10-31 17:00 ` Nikita Danilov
@ 2002-10-31 17:26 ` Alexander Viro
2002-10-31 18:16 ` Nikita Danilov
0 siblings, 1 reply; 7+ messages in thread
From: Alexander Viro @ 2002-10-31 17:26 UTC (permalink / raw)
To: Nikita Danilov; +Cc: Linus Torvalds, Linux Kernel Mailing List
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.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH]: reiser4 [8/8] reiser4 code
2002-10-31 17:26 ` Alexander Viro
@ 2002-10-31 18:16 ` Nikita Danilov
0 siblings, 0 replies; 7+ messages in thread
From: Nikita Danilov @ 2002-10-31 18:16 UTC (permalink / raw)
To: Alexander Viro
Cc: Linus Torvalds, Linux Kernel Mailing List, Reiserfs mail-list
[Reiserfs-List@Namesys.COM is no longer subscribers-only, back into CC]
Alexander Viro writes:
>
>
> 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
->writepages gets (in wbc->sync_mode) enough information to tell
synchronization request like umount or sync from
balance_dirty_pages(). Yes, it looks like better solution,
->writepages(inode, WB_SYNC_ALL) should just synchronously commit all
transactions involving any of inode's pages.
> callback from fsync_super().
Hmm, I just noted that for now we probably could simply use exported
fsync_bdev(s->s_bdev) in fsync_super(s) stead. How simple. Thank you for
the useful discussion. :-)
Nikita.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2002-10-31 18:12 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-31 16:02 [PATCH]: reiser4 [8/8] reiser4 code Nikita Danilov
2002-10-31 16:08 ` Alexander Viro
2002-10-31 16:12 ` Nikita Danilov
2002-10-31 16:26 ` Alexander Viro
2002-10-31 17:00 ` Nikita Danilov
2002-10-31 17:26 ` Alexander Viro
2002-10-31 18:16 ` Nikita Danilov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®