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

!14456 f2fs: fix race in concurrent f2fs_stop_gc_thread

parents 7801b762 816b17d7
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -2309,8 +2309,11 @@ static int f2fs_ioc_shutdown(struct file *filp, unsigned long arg)
		goto out;
	}

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

	f2fs_stop_gc_thread(sbi);
	f2fs_stop_discard_thread(sbi);
@@ -2318,7 +2321,7 @@ static int f2fs_ioc_shutdown(struct file *filp, unsigned long arg)
	f2fs_drop_discard_cmd(sbi);
	clear_opt(sbi, DISCARD);

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

	f2fs_update_time(sbi, REQ_TIME);
out: