summaryrefslogtreecommitdiffstats
path: root/fs/ext4/super.c
diff options
context:
space:
mode:
authorJan Kara2008-07-12 01:27:31 +0200
committerTheodore Ts'o2008-07-12 01:27:31 +0200
commit47b4a50bebfd34b5e1fa2a9c673c8f31fa231cc1 (patch)
treedf382e97cdc28fc231104b8d19cdcfc3099b9d68 /fs/ext4/super.c
parentext4: mballoc avoid use root reserved blocks for non root allocation (diff)
downloadkernel-qcow2-linux-47b4a50bebfd34b5e1fa2a9c673c8f31fa231cc1.tar.gz
kernel-qcow2-linux-47b4a50bebfd34b5e1fa2a9c673c8f31fa231cc1.tar.xz
kernel-qcow2-linux-47b4a50bebfd34b5e1fa2a9c673c8f31fa231cc1.zip
ext4: Set journal pointer to NULL when journal is released
Set sbi->s_journal to NULL after we call journal_destroy(). This will be later needed because after journal_destroy() is called, ext4_clear_inode() can still be called for some inodes (e.g. root inode) and we'll need to detect there that journal doesn't exists anymore. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r--fs/ext4/super.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 80f06159ee99..1b330cd71ca8 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -506,6 +506,7 @@ static void ext4_put_super (struct super_block * sb)
ext4_ext_release(sb);
ext4_xattr_put_super(sb);
jbd2_journal_destroy(sbi->s_journal);
+ sbi->s_journal = NULL;
if (!(sb->s_flags & MS_RDONLY)) {
EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
es->s_state = cpu_to_le16(sbi->s_mount_state);
@@ -2423,6 +2424,7 @@ cantfind_ext4:
failed_mount4:
jbd2_journal_destroy(sbi->s_journal);
+ sbi->s_journal = NULL;
failed_mount3:
percpu_counter_destroy(&sbi->s_freeblocks_counter);
percpu_counter_destroy(&sbi->s_freeinodes_counter);