提交 5a615492 编写于 作者: J Jaegeuk Kim

f2fs: don't issue discard commands in online discard is on

Actually, we don't need to issue discard commands, if discard is on, as
mentioned in the comment.
Reviewed-by: NChao Yu <yuchao0@huawei.com>
Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
上级 e2374015
...@@ -2469,23 +2469,24 @@ int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct fstrim_range *range) ...@@ -2469,23 +2469,24 @@ int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct fstrim_range *range)
if (err) if (err)
goto out; goto out;
start_block = START_BLOCK(sbi, start_segno);
end_block = START_BLOCK(sbi, end_segno + 1);
__init_discard_policy(sbi, &dpolicy, DPOLICY_FSTRIM, cpc.trim_minlen);
__issue_discard_cmd_range(sbi, &dpolicy, start_block, end_block);
/* /*
* We filed discard candidates, but actually we don't need to wait for * We filed discard candidates, but actually we don't need to wait for
* all of them, since they'll be issued in idle time along with runtime * all of them, since they'll be issued in idle time along with runtime
* discard option. User configuration looks like using runtime discard * discard option. User configuration looks like using runtime discard
* or periodic fstrim instead of it. * or periodic fstrim instead of it.
*/ */
if (!test_opt(sbi, DISCARD)) { if (test_opt(sbi, DISCARD))
trimmed = __wait_discard_cmd_range(sbi, &dpolicy, goto out;
start_block = START_BLOCK(sbi, start_segno);
end_block = START_BLOCK(sbi, end_segno + 1);
__init_discard_policy(sbi, &dpolicy, DPOLICY_FSTRIM, cpc.trim_minlen);
__issue_discard_cmd_range(sbi, &dpolicy, start_block, end_block);
trimmed = __wait_discard_cmd_range(sbi, &dpolicy,
start_block, end_block); start_block, end_block);
range->len = F2FS_BLK_TO_BYTES(trimmed); range->len = F2FS_BLK_TO_BYTES(trimmed);
}
out: out:
return err; return err;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册