From: Surbhi Palande <surbhi.palande@xxxxxxxxxxxxx> Freeze and thaw the journal when you freeze and thaw the filesystem. BugLink: https://bugs.launchpad.net/bugs/897421 Signed-off-by: Surbhi Palande <surbhi.palande@xxxxxxxxxxxxx> Cc: Kamal Mostafa <kamal@xxxxxxxxxxxxx> Tested-by: Peter M. Petrakis <peter.petrakis@xxxxxxxxxxxxx> Signed-off-by: Kamal Mostafa <kamal@xxxxxxxxxxxxx> --- fs/ext4/super.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-) diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 3858767..751908b 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -4330,14 +4330,11 @@ static int ext4_freeze(struct super_block *sb) journal = EXT4_SB(sb)->s_journal; - /* Now we set up the journal barrier. */ - jbd2_journal_lock_updates(journal); - + error = jbd2_journal_freeze(journal); /* - * Don't clear the needs_recovery flag if we failed to flush + * Don't clear the needs_recovery flag if we failed to freeze * the journal. */ - error = jbd2_journal_flush(journal); if (error < 0) goto out; @@ -4345,8 +4342,6 @@ static int ext4_freeze(struct super_block *sb) EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER); error = ext4_commit_super(sb, 1); out: - /* we rely on s_frozen to stop further updates */ - jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal); return error; } @@ -4356,10 +4351,14 @@ out: */ static int ext4_unfreeze(struct super_block *sb) { + journal_t *journal; if (sb->s_flags & MS_RDONLY) return 0; lock_super(sb); + journal = EXT4_SB(sb)->s_journal; + + jbd2_journal_thaw(journal); /* Reset the needs_recovery flag before the fs is unlocked. */ EXT4_SET_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER); ext4_commit_super(sb, 1); -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html