Thread (4 messages) 4 messages, 3 authors, 2021-01-27

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,
Song
quoted
 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
ping, I cant find it in latest mainline, is it forgotten?
Applied to md-next. Thanks.

Song
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help