Messages in this thread | | | Date | Thu, 18 Dec 2008 17:37:23 -0600 | From | Eric Sandeen <> | Subject | Re: [PATCH] ext3: wait on all pending commits in ext3_sync_fs |
| |
Jan Kara wrote: > Hello, > > I'm sorry I'm replying late but I got time to react to this only now... >
<snip>
>> I tried this and it too fixes the problem. FWIW I agree it >> looks better... > Well, shouldn't we rather fix what journal_start_commit() returns? > The interface which returns 1 when a transaction is already committing or > a transaction commit has just been started but 0 when we race with > somebody staring the commit is fairly unusable. Moreover > ext3_force_commit() will unnecessarily create new sync transaction and > commit it if there's no transaction running which is quite expensive > (even merging empty sync handle is not for free because of sync > transaction batching). But this is minor problem since we probably > don't care too much about sync() performance - BTW this is probably a > cause for bug 12224, isn't it?
Yep, it is! :)
> BTW: ocfs2 would need fixing as well if done your way since it's > sync_fs function has been copied over from ext3. > To summarized I'd rather see a patch like below (untested) going in > and your patch reverted... Opinions? I can cookup a JBD2 version of > the patch in case we agree to go this way.
Thanks, I'll look that over.
In looking at what we have today, I wonder if we can make things smarter so that we don't commit empty transactions in any case?
-Eric
| |