aboutsummaryrefslogtreecommitdiffstats
path: root/net/switchdev/switchdev.c
diff options
context:
space:
mode:
authorBaokun Li <[email protected]>2024-01-04 14:20:38 +0000
committerTheodore Ts'o <[email protected]>2024-01-18 15:50:24 +0000
commit4530b3660d396a646aad91a787b6ab37cf604b53 (patch)
treef895ecefccf622cb63e0090c64682753b1db02fc /net/switchdev/switchdev.c
parentext4: avoid dividing by 0 in mb_update_avg_fragment_size() when block bitmap ... (diff)
downloadkernel-4530b3660d396a646aad91a787b6ab37cf604b53.tar.gz
kernel-4530b3660d396a646aad91a787b6ab37cf604b53.zip
ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found()
Determine if the group block bitmap is corrupted before using ac_b_ex in ext4_mb_try_best_found() to avoid allocating blocks from a group with a corrupted block bitmap in the following concurrency and making the situation worse. ext4_mb_regular_allocator ext4_lock_group(sb, group) ext4_mb_good_group // check if the group bbitmap is corrupted ext4_mb_complex_scan_group // Scan group gets ac_b_ex but doesn't use it ext4_unlock_group(sb, group) ext4_mark_group_bitmap_corrupted(group) // The block bitmap was corrupted during // the group unlock gap. ext4_mb_try_best_found ext4_lock_group(ac->ac_sb, group) ext4_mb_use_best_found mb_mark_used // Allocating blocks in block bitmap corrupted group Signed-off-by: Baokun Li <[email protected]> Reviewed-by: Jan Kara <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Theodore Ts'o <[email protected]>
Diffstat (limited to 'net/switchdev/switchdev.c')
0 files changed, 0 insertions, 0 deletions