Skip to content

Commit b253bfd

Browse files
xuejiufeitorvalds
authored andcommitted
ocfs2: revert "ocfs2: fix NULL pointer dereference when dismount and ocfs2rec simultaneously"
75f82ea ("ocfs2: fix NULL pointer dereference when dismount and ocfs2rec simultaneously") may cause umount hang while shutting down truncate log. The situation is as followes: ocfs2_dismout_volume -> ocfs2_recovery_exit -> free osb->recovery_map -> ocfs2_truncate_shutdown -> lock global bitmap inode -> ocfs2_wait_for_recovery -> check whether osb->recovery_map->rm_used is zero Because osb->recovery_map is already freed, rm_used can be any other values, so it may yield umount hang. Signed-off-by: joyce.xue <[email protected]> Reviewed-by: Mark Fasheh <[email protected]> Cc: Joel Becker <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
1 parent 27bf630 commit b253bfd

File tree

1 file changed

+2
-6
lines changed

1 file changed

+2
-6
lines changed

fs/ocfs2/super.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1925,15 +1925,11 @@ static void ocfs2_dismount_volume(struct super_block *sb, int mnt_err)
19251925

19261926
ocfs2_shutdown_local_alloc(osb);
19271927

1928+
ocfs2_truncate_log_shutdown(osb);
1929+
19281930
/* This will disable recovery and flush any recovery work. */
19291931
ocfs2_recovery_exit(osb);
19301932

1931-
/*
1932-
* During dismount, when it recovers another node it will call
1933-
* ocfs2_recover_orphans and queue delayed work osb_truncate_log_wq.
1934-
*/
1935-
ocfs2_truncate_log_shutdown(osb);
1936-
19371933
ocfs2_journal_shutdown(osb);
19381934

19391935
ocfs2_sync_blockdev(sb);

0 commit comments

Comments
 (0)