From: Theodore Ts'o Date: Mon, 19 Feb 2018 04:16:28 +0000 (-0500) Subject: ext4: eliminate sleep from shutdown ioctl X-Git-Tag: v4.17-rc1~134^2~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a6d9946bb925293fda9f5ed6d33d8580b001f006;p=thirdparty%2Fkernel%2Flinux.git ext4: eliminate sleep from shutdown ioctl The msleep() when processing EXT4_GOING_FLAGS_NOLOGFLUSH was a hack to avoid some races (that are now fixed), but in fact it introduced its own race. Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org --- diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index 4d1b1575f8ac7..16d3d1325f5bb 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c @@ -498,10 +498,8 @@ static int ext4_shutdown(struct super_block *sb, unsigned long arg) break; case EXT4_GOING_FLAGS_NOLOGFLUSH: set_bit(EXT4_FLAGS_SHUTDOWN, &sbi->s_ext4_flags); - if (sbi->s_journal && !is_journal_aborted(sbi->s_journal)) { - msleep(100); + if (sbi->s_journal && !is_journal_aborted(sbi->s_journal)) jbd2_journal_abort(sbi->s_journal, 0); - } break; default: return -EINVAL;