aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2008-07-11 19:27:31 -0400
committerTheodore Ts'o <tytso@mit.edu>2008-07-11 19:27:31 -0400
commit47b4a50bebfd34b5e1fa2a9c673c8f31fa231cc1 (patch)
treedf382e97cdc28fc231104b8d19cdcfc3099b9d68
parent07031431072ece801d53d2c03d5e5bb21f4f64a4 (diff)
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>
-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)
506 ext4_ext_release(sb); 506 ext4_ext_release(sb);
507 ext4_xattr_put_super(sb); 507 ext4_xattr_put_super(sb);
508 jbd2_journal_destroy(sbi->s_journal); 508 jbd2_journal_destroy(sbi->s_journal);
509 sbi->s_journal = NULL;
509 if (!(sb->s_flags & MS_RDONLY)) { 510 if (!(sb->s_flags & MS_RDONLY)) {
510 EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER); 511 EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
511 es->s_state = cpu_to_le16(sbi->s_mount_state); 512 es->s_state = cpu_to_le16(sbi->s_mount_state);
@@ -2423,6 +2424,7 @@ cantfind_ext4:
2423 2424
2424failed_mount4: 2425failed_mount4:
2425 jbd2_journal_destroy(sbi->s_journal); 2426 jbd2_journal_destroy(sbi->s_journal);
2427 sbi->s_journal = NULL;
2426failed_mount3: 2428failed_mount3:
2427 percpu_counter_destroy(&sbi->s_freeblocks_counter); 2429 percpu_counter_destroy(&sbi->s_freeblocks_counter);
2428 percpu_counter_destroy(&sbi->s_freeinodes_counter); 2430 percpu_counter_destroy(&sbi->s_freeinodes_counter);