Message ID | 20250224062007.1324623-1-chao@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 1b60b23975d6d81703826e3797738e471c3009c6 |
Headers | show |
Series | [f2fs-dev] f2fs: fix to set .discard_granularity correctly | expand |
Hello: This patch was applied to jaegeuk/f2fs.git (dev) by Jaegeuk Kim <jaegeuk@kernel.org>: On Mon, 24 Feb 2025 14:20:07 +0800 you wrote: > commit 4f993264fe29 ("f2fs: introduce discard_unit mount option") introduced > a bug, when we enable discard_unit=section option, it will set > .discard_granularity to BLKS_PER_SEC(), however discard granularity only > supports [1, 512], once section size is not equal to segment size, it will > cause issue_discard_thread() in DPOLICY_BG mode will not select discard entry > w/ any granularity to issue. > > [...] Here is the summary with links: - [f2fs-dev] f2fs: fix to set .discard_granularity correctly https://git.kernel.org/jaegeuk/f2fs/c/1b60b23975d6 You are awesome, thank you!
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 6ebe25eafafa..2b415926641f 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -2320,10 +2320,9 @@ static int create_discard_cmd_control(struct f2fs_sb_info *sbi) dcc->discard_granularity = DEFAULT_DISCARD_GRANULARITY; dcc->max_ordered_discard = DEFAULT_MAX_ORDERED_DISCARD_GRANULARITY; dcc->discard_io_aware = DPOLICY_IO_AWARE_ENABLE; - if (F2FS_OPTION(sbi).discard_unit == DISCARD_UNIT_SEGMENT) + if (F2FS_OPTION(sbi).discard_unit == DISCARD_UNIT_SEGMENT || + F2FS_OPTION(sbi).discard_unit == DISCARD_UNIT_SECTION) dcc->discard_granularity = BLKS_PER_SEG(sbi); - else if (F2FS_OPTION(sbi).discard_unit == DISCARD_UNIT_SECTION) - dcc->discard_granularity = BLKS_PER_SEC(sbi); INIT_LIST_HEAD(&dcc->entry_list); for (i = 0; i < MAX_PLIST_NUM; i++)