At now btrfs_dedupe_file_range() restricted to 16MiB range for
limit locking time and memory requirement for dedup ioctl()
For too big input range code silently set range to 16MiB
Let's remove that restriction by do iterating over dedup range.
That's backward compatible and will not change anything for request
less then 16MiB.
Changes:
v1 -> v2:
- Refactor btrfs_cmp_data_prepare and btrfs_extent_same
- Store memory of pages array between iterations
- Lock inodes once, not on each iteration
- Small inplace cleanups
v2 -> v3:
- Split to several patches
Timofey Titovets (3):
Btrfs: split btrfs_extent_same() for simplification
Btrfs: btrfs_dedupe_file_range() ioctl, remove 16MiB restriction
Btrfs: btrfs_extent_same() reuse cmp workspace
fs/btrfs/ioctl.c | 161 ++++++++++++++++++++++++++---------------------
1 file changed, 91 insertions(+), 70 deletions(-)
--
2.17.0
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html