Unverified Commit d0726f03 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!14455 f2fs: fix race in concurrent f2fs_stop_gc_thread

parents 808cdaaa 2f8f49d6
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -2321,9 +2321,12 @@ int f2fs_do_shutdown(struct f2fs_sb_info *sbi, unsigned int flag,
	if (readonly)
		goto out;

	/* grab sb->s_umount to avoid racing w/ remount() */
	/*
	 * grab sb->s_umount to avoid racing w/ remount() and other shutdown
	 * paths.
	 */
	if (need_lock)
		down_read(&sbi->sb->s_umount);
		down_write(&sbi->sb->s_umount);

	f2fs_stop_gc_thread(sbi);
	f2fs_stop_discard_thread(sbi);
@@ -2332,7 +2335,7 @@ int f2fs_do_shutdown(struct f2fs_sb_info *sbi, unsigned int flag,
	clear_opt(sbi, DISCARD);

	if (need_lock)
		up_read(&sbi->sb->s_umount);
		up_write(&sbi->sb->s_umount);

	f2fs_update_time(sbi, REQ_TIME);
out: