Re: [PULL REQUEST] ext3, jbd, ext2, and quota fixes for 3.1-rc1

Jan Kara
2011-07-26T20:11:14Z

On Tue 26-07-11 11:36:29, Linus Torvalds wrote:
> On Tue, Jul 26, 2011 at 11:14 AM, Jan Kara <jack@suse.cz> wrote:
> >
> >  could you please pull from
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6.git for_linus
>
> Ok, this clashed with the fsync mutex pushdown, and the whole addition
> of fixed tracepoints.
>
> Quite frankly, I think the fixed tracepoints are broken and make the
> code unreadable (why have them?) but I fixed it up.
>
> Somebody should really double-check the resolve. That's especially
> true since the whole i_mutex thing is *also* rather dubious. The
> comment that moved that down says:
>
> + /*
> + * Taking the mutex here just to keep consistent with how fsync was
> + * called previously, however it looks like we don't need to take
> + * i_mutex at all.
> + */
>
> but in fact it is *not* consistent with how fsync() used to be called,
> since we then drop the mutex *before* doing
>
> return ext3_force_commit(inode->i_sb);
>
> for the should_journal_data case.
>
> See commit 02c24a82187 ("fs: push i_mutex and filemap_write_and_wait
> down into ->fsync() handlers").
>
> I resolved it with the mutex still dropped early (especially since the
> comment implies it may not matter at all), but quite frankly,
> everything I did around that resolve made me go "that code is just
> WRONG". Both wrt the tracepoints and wrt the i_mutex.
>
> So I think my resolution is "correct" from a merge standpoint, but I
> think the code is total crap. I also wonder whether you can really do
> that
>
> J_ASSERT(ext3_journal_current_handle() == NULL);
>
> without holding the i_mutex, so I moved that back down again.
>
> So I *really* want people to take a look at that ext3_sync_file()
> function. Please?
ext3_sync_file() really does not need i_mutex for anything. I've just
checked how you resolved the conflict and it looks nice. I'll queue a patch
which just removes i_mutex from that function altogether. Thanks for the
resolve.

Honza
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR