Messages in this thread | | | Date | Mon, 3 Nov 2008 14:18:29 -0800 | From | Arthur Jones <> | Subject | Re: [PATCH] ext3: wait on all pending commits in ext3_sync_fs |
| |
Hi Ted, ...
On Mon, Nov 03, 2008 at 02:01:44PM -0800, Theodore Tso wrote: > [...] > @@ -2922,15 +2923,16 @@ static void ext4_write_super(struct super_block *sb) > > static int ext4_sync_fs(struct super_block *sb, int wait) > { > - tid_t target; > + int ret; > > trace_mark(ext4_sync_fs, "dev %s wait %d", sb->s_id, wait); > - sb->s_dirt = 0; > - if (jbd2_journal_start_commit(EXT4_SB(sb)->s_journal, &target)) { > - if (wait) > - jbd2_log_wait_commit(EXT4_SB(sb)->s_journal, target); > - } > - return 0; > + if (wait) > + ret = ext4_force_commit(sb); > + else > + ret = jbd2_journal_start_commit(EXT4_SB(sb)->s_journal, NULL); > + if (!ret) > + sb->s_dirt = 0; > + return ret;
This bit will clear sb->s_dirt if we did _not_ start a commit in jbd2_journal_start_commit. It will return 1 if we did start a commit which I don't think is what we want to do here...
Arthur
| |