Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ext3: revert "ext3: wait on all pending commits in ext3_sync_fs"

This reverts commit c87591b719737b4e91eb1a9fa8fd55a4ff1886d6.

Since journal_start_commit() is now fixed to return 1 when we started a
transaction commit, there's some transaction waiting to be committed or
there's a transaction already committing, we don't need to call
ext3_force_commit() in ext3_sync_fs(). Furthermore ext3_force_commit()
can unnecessarily create sync transaction which is expensive so it's
worthwhile to remove it when we can.

Cc: Eric Sandeen <sandeen@redhat.com>
Cc: <linux-ext4@vger.kernel.org>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Jan Kara and committed by
Linus Torvalds
02ac597c 8fe4cd0d

+6 -5
+6 -5
fs/ext3/super.c
··· 2428 2428 2429 2429 static int ext3_sync_fs(struct super_block *sb, int wait) 2430 2430 { 2431 - sb->s_dirt = 0; 2432 - if (wait) 2433 - ext3_force_commit(sb); 2434 - else 2435 - journal_start_commit(EXT3_SB(sb)->s_journal, NULL); 2431 + tid_t target; 2436 2432 2433 + sb->s_dirt = 0; 2434 + if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) { 2435 + if (wait) 2436 + log_wait_commit(EXT3_SB(sb)->s_journal, target); 2437 + } 2437 2438 return 0; 2438 2439 } 2439 2440