On 2024/1/26 16:57, Baokun Li wrote: > Now ac_groups_linear_remaining is of type __u16 and s_mb_max_linear_groups > is of type unsigned int, so an overflow occurs when setting a value above > 65535 through the mb_max_linear_groups sysfs interface. Therefore, the > type of ac_groups_linear_remaining is set to __u32 to avoid overflow. > > Fixes: 196e402adf2e ("ext4: improve cr 0 / cr 1 group scanning") > CC: stable@xxxxxxxxxx > Signed-off-by: Baokun Li <libaokun1@xxxxxxxxxx> Looks good to me. Reviewed-by: Zhang Yi <yi.zhang@xxxxxxxxxx> > --- > fs/ext4/mballoc.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/ext4/mballoc.h b/fs/ext4/mballoc.h > index d7aeb5da7d86..498af2abc5d8 100644 > --- a/fs/ext4/mballoc.h > +++ b/fs/ext4/mballoc.h > @@ -194,8 +194,8 @@ struct ext4_allocation_context { > > __u32 ac_groups_considered; > __u32 ac_flags; /* allocation hints */ > + __u32 ac_groups_linear_remaining; > __u16 ac_groups_scanned; > - __u16 ac_groups_linear_remaining; > __u16 ac_found; > __u16 ac_cX_found[EXT4_MB_NUM_CRS]; > __u16 ac_tail; >