]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
md/raid5: fix raid5_run() to return error when log_init() fails
authorYu Kuai <yukuai@fnnas.com>
Wed, 14 Jan 2026 17:12:29 +0000 (01:12 +0800)
committerYu Kuai <yukuai@fnnas.com>
Mon, 26 Jan 2026 05:09:42 +0000 (13:09 +0800)
Since commit f63f17350e53 ("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: f63f17350e53 ("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>
drivers/md/raid5.c

index 8dc98f545969ff28ec0120d185ecd84f09f37392..a85878b009f9a403ff69b35d225b5a52eddc9fac 100644 (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;