Commit f8cecf7a authored by Li Nan's avatar Li Nan Committed by Jialin Zhang
Browse files

md/raid10: fix softlockup in raid10_unplug

hulk inclusion
category: bugfix
bugzilla: 188628, https://gitee.com/openeuler/kernel/issues/I6WKDR


CVE: NA

--------------------------------

There is no limit to the number of io for raid10 plug, whitch may result
in excessive memory usage and potential softlockup when a large number of
io are submitted at once. There is no good way to fix it now, just add
schedule point to prevent softlockup.

Fixes: 57c67df4 ("md/raid10: submit IO from originating thread instead of md thread.")
Signed-off-by: default avatarLi Nan <linan122@huawei.com>
Reviewed-by: default avatarYu Kuai <yukuai3@huawei.com>
Reviewed-by: default avatarHou Tao <houtao1@huawei.com>
parent 22eeb5d1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -896,6 +896,7 @@ static void flush_pending_writes(struct r10conf *conf)
			else
				submit_bio_noacct(bio);
			bio = next;
			cond_resched();
		}
		blk_finish_plug(&plug);
	} else
@@ -1089,6 +1090,7 @@ static void raid10_unplug(struct blk_plug_cb *cb, bool from_schedule)
		else
			submit_bio_noacct(bio);
		bio = next;
		cond_resched();
	}
	kfree(plug);
}