]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Do not exit ctl_be_block_worker() prematurely.
authorAlexander Motin <mav@FreeBSD.org>
Sat, 6 Mar 2021 03:39:52 +0000 (22:39 -0500)
committerAlexander Motin <mav@FreeBSD.org>
Tue, 9 Mar 2021 03:15:38 +0000 (22:15 -0500)
commit84e5f9455a181a792dfea7bbf3d43a3e2777c436
tree934b5102d943c707e1b9dcd5156d05d31e2750ac
parentc7ea14ed61888b99ad9c23e1f6d9eb4e5935fc78
Do not exit ctl_be_block_worker() prematurely.

Return while there are any I/Os in a queue may result in them stuck
indefinitely, since there is only one taskqueue task for all of them.
I think I've reproduced this by switching ha_role to secondary under
heavy load.

Approved by: re (delphij)

(cherry picked from commit 6ed39db2573bb808ac2c206cd6c831f0be86219c)
(cherry picked from commit a3d416f3daafc59bc2f4ee278593c8a3f7a30d2b)
sys/cam/ctl/ctl_backend_block.c