ext4: fix wrong list_splice in ext4_fc_cleanup
authorDaejun Park <daejun7.park@samsung.com>
Wed, 30 Dec 2020 09:48:51 +0000 (18:48 +0900)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 15 Jan 2021 19:40:12 +0000 (14:40 -0500)
After full/fast commit, entries in staging queue are promoted to main
queue. In ext4_fs_cleanup function, it splice to staging queue to
staging queue.

Fixes: aa75f4d3daaeb ("ext4: main fast-commit commit path")
Signed-off-by: Daejun Park <daejun7.park@samsung.com>
Reviewed-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
Link: https://lore.kernel.org/r/20201230094851epcms2p6eeead8cc984379b37b2efd21af90fd1a@epcms2p6
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
fs/ext4/fast_commit.c

index 6b5489273c859d0d9af56fe593ace589172d00e3..ec5316fbcd1d48671c92ad4504238764be8a75bc 100644 (file)
@@ -1268,7 +1268,7 @@ static void ext4_fc_cleanup(journal_t *journal, int full)
        list_splice_init(&sbi->s_fc_dentry_q[FC_Q_STAGING],
                                &sbi->s_fc_dentry_q[FC_Q_MAIN]);
        list_splice_init(&sbi->s_fc_q[FC_Q_STAGING],
-                               &sbi->s_fc_q[FC_Q_STAGING]);
+                               &sbi->s_fc_q[FC_Q_MAIN]);
 
        ext4_clear_mount_flag(sb, EXT4_MF_FC_COMMITTING);
        ext4_clear_mount_flag(sb, EXT4_MF_FC_INELIGIBLE);