On Tue, Dec 15, 2020 at 5:26 PM Guoqing Jiang <guoqing.jiang@xxxxxxxxxxxxxxx> wrote: > > Currently, raid5 calculates dev_sectors from chunk_sectors without > proper cast, which is problematic. > > Signed-off-by: Guoqing Jiang <guoqing.jiang@xxxxxxxxxxxxxxx> > --- > I think the recently report about raid5 issue could be related with > the setting of dev_sectors. > > Could someone test it with a large raid5 array? Thanks. Yes, this was the exact problem. I will apply this to md-next. (probably after the merge window). Thanks, Song > > drivers/md/raid5.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c > index 3934347..ca0b29a 100644 > --- a/drivers/md/raid5.c > +++ b/drivers/md/raid5.c > @@ -7662,7 +7662,7 @@ static int raid5_run(struct mddev *mddev) > } > > /* device size must be a multiple of chunk size */ > - mddev->dev_sectors &= ~(mddev->chunk_sectors - 1); > + mddev->dev_sectors &= ~((sector_t)mddev->chunk_sectors - 1); > mddev->resync_max_sectors = mddev->dev_sectors; > > if (mddev->degraded > dirty_parity_disks && > -- > 2.7.4 >