md/raid5: fix raid5_run() to return error when log_init() fails

Since commit f63f17350e ("md/raid5: use the atomic queue limit
update APIs"), the abort path in raid5_run() returns 'ret' instead of
-EIO. However, if log_init() fails, 'ret' is still 0 from the previous
successful call, causing raid5_run() to return success despite the
failure.

Fix this by capturing the return value from log_init().

Link: https://lore.kernel.org/linux-raid/20260114171241.3043364-2-yukuai@fnnas.com
Fixes: f63f17350e ("md/raid5: use the atomic queue limit update APIs")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/r/202601130531.LGfcZsa4-lkp@intel.com/
Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Li Nan <linan122@huawei.com>
Reviewed-by: Xiao Ni <xni@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Yu Kuai
2026-01-15 01:12:29 +08:00
parent 8e5bcc3a95
commit 2d9f7150ac

View File

@@ -8057,7 +8057,8 @@ static int raid5_run(struct mddev *mddev)
goto abort;
}
if (log_init(conf, journal_dev, raid5_has_ppl(conf)))
ret = log_init(conf, journal_dev, raid5_has_ppl(conf));
if (ret)
goto abort;
return 0;