summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorYu Kuai <yukuai3@huawei.com>2023-03-10 15:38:53 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-05-17 11:13:13 +0200
commit1d2c6c6e37fe5de11fd01a82badf03390e12df7a (patch)
treec93860ef1d45f618c4874517269af6ba0b7d26f8 /include
parent1fd247c1ded58f9bc1130fe4b26fb187fa1af55d (diff)
md/raid10: fix leak of 'r10bio->remaining' for recovery
[ Upstream commit 26208a7cffd0c7cbf14237ccd20c7270b3ffeb7e ] raid10_sync_request() will add 'r10bio->remaining' for both rdev and replacement rdev. However, if the read io fails, recovery_request_write() returns without issuing the write io, in this case, end_sync_request() is only called once and 'remaining' is leaked, cause an io hang. Fix the problem by decreasing 'remaining' according to if 'bio' and 'repl_bio' is valid. Fixes: 24afd80d99f8 ("md/raid10: handle recovery of replacement devices.") Signed-off-by: Yu Kuai <yukuai3@huawei.com> Signed-off-by: Song Liu <song@kernel.org> Link: https://lore.kernel.org/r/20230310073855.1337560-5-yukuai1@huaweicloud.com Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions