Inspired by Hans' possible flawed DUP chunk allocator, add the following
dev extents checker:
1) Dev extent overlap check
Dev extents don't use extent_cache so it can't report dev extents
overlap.
So manually check dev extents overlap.
This check is pretty simple since we're already iterating dev extents
by its physical offset, we only need to remember previous checked dev
extents to do such check.
2) Dev extent end check
No dev extent should go beyond device boundary.
These two checks are pretty cheap so it shouldn't bring any performance
overhead.
Changelog:
v2:
Add "Link:" tag for the first patch.
Move the actual check into verify_one_dev_extent() for the 2nd patch.
Qu Wenruo (2):
btrfs: volumes: Make sure there is no overlap dev extents at mount
time
btrfs: volumes: Make sure no dev extent is beyond device boundary
fs/btrfs/volumes.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
--
2.19.0