-
Notifications
You must be signed in to change notification settings - Fork 132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rm_offset_get_from_fd merges logically separate extents #530
Labels
Comments
cebtenzzre
added a commit
to cebtenzzre/rmlint
that referenced
this issue
Sep 16, 2021
There can be a hole between two physically adjacent extents. To avoid breaking any code that calls this function, don't merge their representation, since it completely hides the hole and makes the physical length of the on-disk extent look larger than it really is. Fixes sahib#530
cebtenzzre
added a commit
to cebtenzzre/rmlint
that referenced
this issue
Sep 25, 2021
There can be a hole between two physically adjacent extents. To avoid breaking any code that calls this function, don't merge their representation, since it completely hides the hole and makes the physical length of the on-disk extent look larger than it really is. Fixes sahib#530
cebtenzzre
added a commit
to cebtenzzre/rmlint
that referenced
this issue
Sep 28, 2021
There can be a hole between two physically adjacent extents. To avoid breaking any code that calls this function, don't merge their representation, since it completely hides the hole and makes the physical length of the on-disk extent look larger than it really is. Fixes sahib#530
cebtenzzre
added a commit
to cebtenzzre/rmlint
that referenced
this issue
Aug 7, 2022
There can be a hole between two physically adjacent extents. To avoid breaking any code that calls this function, don't merge their representation, since it completely hides the hole and makes the physical length of the on-disk extent look larger than it really is. Fixes sahib#530
cebtenzzre
added a commit
to cebtenzzre/rmlint
that referenced
this issue
Sep 18, 2022
There can be a hole between two physically adjacent extents. To avoid breaking any code that calls this function, don't merge their representation, since it completely hides the hole and makes the physical length of the on-disk extent look larger than it really is. Fixes sahib#530
cebtenzzre
changed the title
rm_offset_get_fiemap merges logically separate extents
rm_offset_get_from_fd merges logically separate extents
Feb 22, 2023
cebtenzzre
added a commit
to cebtenzzre/rmlint
that referenced
this issue
Feb 24, 2023
rmlint previously ignored holes between physically adjacent extents. This could cause files to be detected as reflinked that weren't, if one file had a complete extent and the other file had two pieces of it separated by a hole. Check for logical gaps as well as physical gaps to fix this problem. Fixes sahib#530
cebtenzzre
added a commit
to cebtenzzre/rmlint
that referenced
this issue
Feb 26, 2023
rmlint previously ignored holes between physically adjacent extents. This could cause files to be detected as reflinked that weren't, if one file had a complete extent and the other file had two pieces of it separated by a hole. Check for logical gaps as well as physical gaps to fix this problem. Fixes sahib#530
intelfx
pushed a commit
to intelfx/rmlint
that referenced
this issue
Mar 9, 2023
There can be a hole between two physically adjacent extents. To avoid breaking any code that calls this function, don't merge their representation, since it completely hides the hole and makes the physical length of the on-disk extent look larger than it really is. Fixes sahib#530
intelfx
pushed a commit
to intelfx/rmlint
that referenced
this issue
Mar 9, 2023
There can be a hole between two physically adjacent extents. To avoid breaking any code that calls this function, don't merge their representation, since it completely hides the hole and makes the physical length of the on-disk extent look larger than it really is. Fixes sahib#530
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Description
When extents are physically adjacent, rmlint assumes they can safely be merged, even if they are not logically adjacent.
Steps to reproduce
Build rmlint from the develop branch with _RM_OFFSET_DEBUG=1 and fixes for #527, #528, and #529 applied.
Then run these commands:
Actual result
rmlint only checks one pair of physical offsets, which
is probably harmless to --is-reflink butindicates that rm_offset_get_fiemap is merging the representation of these two extents, which is confusing and incorrect (and can cause --is-reflink false positives).Expected result
Note that rmlint reports two matching offsets, just like how filefrag reports two extents.
Versions
rmlint version 2.10.1 built from develop commit bdb591f, with _RM_OFFSET_DEBUG=1 and fixes for #527, #528, and #529 applied.
The text was updated successfully, but these errors were encountered: