LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Arthur Jones <ajones@riverbed.com>
Cc: sandeen@redhat.com, linux-ext4@vger.kernel.org, sct@redhat.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ext3: wait on all pending commits in ext3_sync_fs
Date: Mon, 3 Nov 2008 12:37:50 -0800 [thread overview]
Message-ID: <20081103123750.67c96224.akpm@linux-foundation.org> (raw)
In-Reply-To: <20081103201428.GB30565@ajones-laptop.nbttech.com>
On Mon, 3 Nov 2008 12:14:28 -0800
Arthur Jones <ajones@riverbed.com> wrote:
> Hi Andrew, ...
>
> On Mon, Nov 03, 2008 at 11:33:18AM -0800, Andrew Morton wrote:
> > [...]
> > > --- a/fs/ext3/super.c
> > > +++ b/fs/ext3/super.c
> > > @@ -2392,7 +2392,13 @@ static int ext3_sync_fs(struct super_block *sb, int wait)
> > > if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) {
> > > if (wait)
> > > log_wait_commit(EXT3_SB(sb)->s_journal, target);
> > > - }
> > > + } else if (wait)
> > > + /*
> > > + * We may have a commit in progress, clear it out
> > > + * before we go on...
> > > + */
> > > + ext3_force_commit(sb);
> > > +
> > > return 0;
> > > }
> >
> > Can we do
> >
> > sb->s_dirt = 0;
> > if (wait)
> > ext3_force_commit(...);
> > else
> > journal_start_commit(...);
>
> I think this is what you had in mind:
yup.
>
> diff --git a/fs/ext3/super.c b/fs/ext3/super.c
> index 18eaa78..2b48b85 100644
> --- a/fs/ext3/super.c
> +++ b/fs/ext3/super.c
> @@ -2386,13 +2386,12 @@ static void ext3_write_super (struct super_block * sb)
>
> static int ext3_sync_fs(struct super_block *sb, int wait)
> {
> - tid_t target;
> -
> sb->s_dirt = 0;
> - if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) {
> - if (wait)
> - log_wait_commit(EXT3_SB(sb)->s_journal, target);
> - }
> + if (wait)
> + ext3_force_commit(sb);
> + else
> + journal_start_commit(EXT3_SB(sb)->s_journal, NULL);
> +
> return 0;
> }
>
> I tried this and it too fixes the problem. FWIW I agree it
> looks better...
>
OK. But still, questions remain.
- should we clear s_dirt if log_wait_commit() didn't work?
- ext3_force_commit() clears s_dirt also
- should ext3_sync_fs() be dropping the ext3_force_commit() return
value on the floor?
This is all rather worrisome.
next prev parent reply other threads:[~2008-11-03 20:40 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20081024183733.GA25797@ajones-laptop.nbttech.com>
2008-10-27 16:54 ` ext3: slow symlink corruption on umount Arthur Jones
2008-10-29 19:54 ` Arthur Jones
2008-10-29 20:36 ` Eric Sandeen
2008-10-29 21:09 ` Theodore Tso
2008-10-30 13:38 ` Eric Sandeen
2008-10-30 13:55 ` Arthur Jones
2008-10-31 9:47 ` Nick Piggin
2008-10-30 17:40 ` Arthur Jones
2008-10-30 18:03 ` Eric Sandeen
2008-10-30 21:34 ` Arthur Jones
2008-10-31 17:24 ` Arthur Jones
2008-10-31 18:37 ` Eric Sandeen
2008-10-30 18:32 ` Arthur Jones
2008-11-03 18:44 ` [PATCH] ext3: wait on all pending commits in ext3_sync_fs Arthur Jones
2008-11-03 19:33 ` Andrew Morton
2008-11-03 20:14 ` Arthur Jones
2008-11-03 20:37 ` Andrew Morton [this message]
2008-11-03 20:58 ` Arthur Jones
2008-11-03 21:13 ` Andrew Morton
2008-11-03 21:19 ` Theodore Tso
2008-11-03 21:27 ` Andrew Morton
2008-11-03 21:48 ` Theodore Tso
2008-11-03 22:01 ` Theodore Tso
2008-11-03 22:18 ` Arthur Jones
2008-11-03 22:27 ` Andrew Morton
2008-11-03 22:55 ` Theodore Tso
2008-11-03 23:01 ` Arthur Jones
2008-11-03 23:12 ` Theodore Tso
2008-11-04 16:26 ` Arthur Jones
2008-11-03 21:48 ` Arthur Jones
2008-11-03 22:47 ` Theodore Tso
2008-12-18 23:17 ` Jan Kara
2008-12-18 23:37 ` Eric Sandeen
2008-12-19 0:27 ` Jan Kara
2008-12-19 1:34 ` Eric Sandeen
2008-12-22 19:15 ` Ric Wheeler
2008-12-22 22:57 ` Andreas Dilger
2008-12-23 0:09 ` Ric Wheeler
2008-12-23 15:56 ` Eric Sandeen
2009-01-12 22:28 ` Jan Kara
2009-01-13 17:21 ` Eric Sandeen
2009-01-13 22:14 ` Eric Sandeen
2009-01-14 4:24 ` Theodore Tso
2009-01-14 17:26 ` Eric Sandeen
2009-01-14 17:27 ` Jan Kara
2009-01-29 18:27 ` Mike Snitzer
2009-01-29 20:05 ` Eric Sandeen
2008-11-03 19:59 ` Eric Sandeen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081103123750.67c96224.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=ajones@riverbed.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sandeen@redhat.com \
--cc=sct@redhat.com \
--subject='Re: [PATCH] ext3: wait on all pending commits in ext3_sync_fs' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).