ext4: write superblock only once on unmount
In some rather rare cases it is possible that ext4 may the superblock to the media twice. This patch makes sure this does not happen. This should speed up unmounting in those cases. Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
1b8b9750f0
commit
a8e25a8324
|
@ -836,9 +836,6 @@ static void ext4_put_super(struct super_block *sb)
|
|||
destroy_workqueue(sbi->dio_unwritten_wq);
|
||||
|
||||
lock_super(sb);
|
||||
if (sb->s_dirt)
|
||||
ext4_commit_super(sb, 1);
|
||||
|
||||
if (sbi->s_journal) {
|
||||
err = jbd2_journal_destroy(sbi->s_journal);
|
||||
sbi->s_journal = NULL;
|
||||
|
@ -855,8 +852,10 @@ static void ext4_put_super(struct super_block *sb)
|
|||
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);
|
||||
ext4_commit_super(sb, 1);
|
||||
}
|
||||
if (sb->s_dirt || !(sb->s_flags & MS_RDONLY))
|
||||
ext4_commit_super(sb, 1);
|
||||
|
||||
if (sbi->s_proc) {
|
||||
remove_proc_entry("options", sbi->s_proc);
|
||||
remove_proc_entry(sb->s_id, ext4_proc_root);
|
||||
|
|
Loading…
Reference in New Issue