mirror of https://gitee.com/openkylin/linux.git
btrfs: trim: make reserved device area adjustments more explicit
Currently the first megabyte on a device housing a btrfs filesystem is exempt from allocation and trimming. Currently this is not a problem since 'start' is set to 1M at the beginning of btrfs_trim_free_extents and find_first_clear_extent_bit always returns a range that is >= start. However, in a follow up patch find_first_clear_extent_bit will be changed such that it will return a range containing 'start' and this range may very well be 0...>=1M so 'start'. Future proof the sole user of find_first_clear_extent_bit by setting 'start' after the function is called. No functional changes. Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Nikolay Borisov <nborisov@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
6f8e4fd430
commit
53460a4572
|
@ -11179,12 +11179,17 @@ static int btrfs_trim_free_extents(struct btrfs_device *device, u64 *trimmed)
|
|||
find_first_clear_extent_bit(&device->alloc_state, start,
|
||||
&start, &end,
|
||||
CHUNK_TRIMMED | CHUNK_ALLOCATED);
|
||||
|
||||
/* Ensure we skip the reserved area in the first 1M */
|
||||
start = max_t(u64, start, SZ_1M);
|
||||
|
||||
/*
|
||||
* If find_first_clear_extent_bit find a range that spans the
|
||||
* end of the device it will set end to -1, in this case it's up
|
||||
* to the caller to trim the value to the size of the device.
|
||||
*/
|
||||
end = min(end, device->total_bytes - 1);
|
||||
|
||||
len = end - start + 1;
|
||||
|
||||
/* We didn't find any extents */
|
||||
|
|
Loading…
Reference in New Issue