Hi Andrew, ... On Mon, Nov 03, 2008 at 12:37:50PM -0800, Andrew Morton wrote: > [...] > OK. But still, questions remain. > > - should we clear s_dirt if log_wait_commit() didn't work? > > - ext3_force_commit() clears s_dirt also I'm not sure if it makes sense, but ATM I don't think it hurts anything given that ext3_write_super is just sb->s_dirt = 0; > - should ext3_sync_fs() be dropping the ext3_force_commit() return > value on the floor? Something like this (tested)? diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 2b48b85..743acf1 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c @@ -2386,13 +2386,15 @@ static void ext3_write_super (struct super_block * sb) static int ext3_sync_fs(struct super_block *sb, int wait) { + int ret = 0; + sb->s_dirt = 0; if (wait) - ext3_force_commit(sb); + ret = ext3_force_commit(sb); else journal_start_commit(EXT3_SB(sb)->s_journal, NULL); - return 0; + return ret; } /* Arthur -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html