RFC Btrfs: make a source length of 0 imply EOF for dedupe
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest2 patches 14 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/2 | Btrfs: refactor btrfs_extent_same() slightlyfs/ | +12 | 1 reply | |
| 2/2 | Btrfs: make a source length of 0 imply EOF for dedupefs/ | +9 | 0 replies |
Reviews trailers per patch
1 of 2 patches has a Reviewed-by or Acked-by.
| Patch | Qu Wenruo |
|---|---|
| 1/2 | R-b |
| 2/2 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [RFC PATCH 0/2] Btrfs: make a source length of 0 imply EOF for dedupe
From: Omar Sandoval <[email protected]>
This is the follow-up to the discussions here [1] and here [2] that makes Btrfs treat a src_length of 0 to dedupe as "until EOF". The implementation is straightforward, but there are a few catches that convinced me to post this as an RFC:
1. We still don't know for sure whether userspace cares about the original Btrfs behavior. Darrick and I both seem to think not, but hopefully someone will speak up if it matters to them.
2. When doing the implicit EOF, XFS returns 0 for bytes_deduped. I copied this in my implementation, but I'm guessing that's a bug rather than a feature.
3. Both XFS and Btrfs cap each dedupe operation to 16MB, but the implicit EOF gets around this in the existing XFS implementation. I copied this for the Btrfs implementation.
So now we have 3 options:
a) Apply these patches as-is.
b) Fix XFS to both return the actual bytes_deduped and cap the length for the EOF case. Do the same for Btrfs.
c) Make XFS consistent with the existing Btrfs behavior.
I'm starting to lean towards option c after writing this cover letter, but I might as well send these out and get a second opinion.
Thanks!
1: http://marc.info/?l=linux-btrfs&m=146828374631829&w=2
2: http://marc.info/?l=linux-btrfs&m=147694962912532&w=2
Omar Sandoval (2):
Btrfs: refactor btrfs_extent_same() slightly
Btrfs: make a source length of 0 imply EOF for dedupe
fs/btrfs/ioctl.c | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-)
Signature · 1 line
2.10.2