Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
md/raid5: limit request size according to implementation limits
Current implementation employ 16bit counter of active stripes in lower bits of bio->bi_phys_segments. If request is big enough to overflow this counter bio will be completed and freed too early. Fortunately this not happens in default configuration because several other limits prevent that: stripe_cache_size * nr_disks effectively limits count of active stripes. And small max_sectors_kb at lower disks prevent that during normal read/write operations. Overflow easily happens in discard if it's enabled by module parameter "devices_handle_discard_safely" and stripe_cache_size is set big enough. This patch limits requests size with 256Mb - 8Kb to prevent overflows. Signed-off-by: Konstantin Khlebnikov <[email protected]> Cc: Shaohua Li <[email protected]> Cc: Neil Brown <[email protected]> Cc: [email protected] Signed-off-by: Shaohua Li <[email protected]>
- Loading branch information