Re: [PATCH] md/raid5: cast chunk_sectors to sector_t value
From: Song Liu <song@kernel.org>
Date: 2021-01-27 04:49:32
On Mon, Jan 25, 2021 at 5:57 AM Jack Wang [off-list ref] wrote:
Song Liu [off-list ref] 于2020年12月16日周三 上午5:29写道:quoted
On Tue, Dec 15, 2020 at 5:26 PM Guoqing Jiang [off-list ref] wrote:quoted
Currently, raid5 calculates dev_sectors from chunk_sectors without proper cast, which is problematic. Signed-off-by: Guoqing Jiang <redacted> --- 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, Songquoted
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.4ping, I cant find it in latest mainline, is it forgotten?
Applied to md-next. Thanks. Song