mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
bcachefs: support REMAP_FILE_DEDUP in bch2_remap_file_range
By removing the early-exit when REMAP_FILE_DEDUP is set, we should be able to support the fideduperange ioctl, albeit less efficiently than if we handled some of the extent locking and comparison logic inside bcachefs. Extent comparison logic already exists inside of `__generic_remap_file_range_prep`. Signed-off-by: Reed Riley <reed@riley.engineer> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
7a254053a5
commit
7f3dc6c98b
@ -867,9 +867,6 @@ loff_t bch2_remap_file_range(struct file *file_src, loff_t pos_src,
|
||||
if (remap_flags & ~(REMAP_FILE_DEDUP|REMAP_FILE_ADVISORY))
|
||||
return -EINVAL;
|
||||
|
||||
if (remap_flags & REMAP_FILE_DEDUP)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if ((pos_src & (block_bytes(c) - 1)) ||
|
||||
(pos_dst & (block_bytes(c) - 1)))
|
||||
return -EINVAL;
|
||||
@ -902,7 +899,8 @@ loff_t bch2_remap_file_range(struct file *file_src, loff_t pos_src,
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
file_update_time(file_dst);
|
||||
if (!(remap_flags & REMAP_FILE_DEDUP))
|
||||
file_update_time(file_dst);
|
||||
|
||||
bch2_mark_pagecache_unallocated(src, pos_src >> 9,
|
||||
(pos_src + aligned_len) >> 9);
|
||||
|
Loading…
Reference in New Issue
Block a user