Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef83735b authored by Chao Yu's avatar Chao Yu Committed by Jaegeuk Kim
Browse files

f2fs: stop gc/discard thread after fs shutdown



Once filesystem shuts down, daemons like gc/discard thread should be
aware of it, and do exit, in addtion, drop all cached pending discard
commands and turn off real-time discard mode.

Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent cb472c71
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2863,6 +2863,7 @@ void invalidate_blocks(struct f2fs_sb_info *sbi, block_t addr);
bool is_checkpointed_data(struct f2fs_sb_info *sbi, block_t blkaddr);
void init_discard_policy(struct discard_policy *dpolicy, int discard_type,
						unsigned int granularity);
void drop_discard_cmd(struct f2fs_sb_info *sbi);
void stop_discard_thread(struct f2fs_sb_info *sbi);
bool f2fs_wait_discard_bios(struct f2fs_sb_info *sbi);
void clear_prefree_segments(struct f2fs_sb_info *sbi, struct cp_control *cpc);
+7 −0
Original line number Diff line number Diff line
@@ -1851,6 +1851,13 @@ static int f2fs_ioc_shutdown(struct file *filp, unsigned long arg)
		ret = -EINVAL;
		goto out;
	}

	stop_gc_thread(sbi);
	stop_discard_thread(sbi);

	drop_discard_cmd(sbi);
	clear_opt(sbi, DISCARD);

	f2fs_update_time(sbi, REQ_TIME);
out:
	mnt_drop_write_file(filp);
+5 −0
Original line number Diff line number Diff line
@@ -1344,6 +1344,11 @@ static bool __drop_discard_cmd(struct f2fs_sb_info *sbi)
	return dropped;
}

void drop_discard_cmd(struct f2fs_sb_info *sbi)
{
	__drop_discard_cmd(sbi);
}

static unsigned int __wait_one_discard_bio(struct f2fs_sb_info *sbi,
							struct discard_cmd *dc)
{