Re: [PATCH] ext3: wait on all pending commits in ext3_sync_fs

From: Eric Sandeen
Date: Thu Dec 18 2008 - 18:37:48 EST


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