diff options
| author | Qu Wenruo <[email protected]> | 2022-06-17 12:04:06 +0200 |
|---|---|---|
| committer | David Sterba <[email protected]> | 2022-07-25 17:45:39 +0200 |
| commit | 462b0b2a86c4d5a902812a449f99722e65c6cc66 (patch) | |
| tree | 6ba097aacb6207ad8fad127ea661e82849c3d892 /scripts/gcc-plugins/gcc-generate-ipa-pass.h | |
| parent | ff18a4afebdd9b4441983a777b88095250e9de1d (diff) | |
btrfs: return proper mapped length for RAID56 profiles in __btrfs_map_block()
For profiles other than RAID56, __btrfs_map_block() returns @map_length
as min(stripe_end, logical + *length), which is also the same result
from btrfs_get_io_geometry().
But for RAID56, __btrfs_map_block() returns @map_length as stripe_len.
This strange behavior is going to hurt incoming bio split at
btrfs_map_bio() time, as we will use @map_length as bio split size.
Fix this behavior by returning @map_length by the same calculation as
for other profiles.
Reviewed-by: Nikolay Borisov <[email protected]>
Tested-by: Nikolay Borisov <[email protected]>
Reviewed-by: Johannes Thumshirn <[email protected]>
Signed-off-by: Qu Wenruo <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
Signed-off-by: David Sterba <[email protected]>
Diffstat (limited to 'scripts/gcc-plugins/gcc-generate-ipa-pass.h')
0 files changed, 0 insertions, 0 deletions