From: Liu Yuan <[email protected]> For a fifo read pattern, we only have one running aio (possible other cases that has less number than num_children in the future), so we need to check if .acb is NULL against bdrv_aio_cancel() to avoid segfault.
Cc: Eric Blake <[email protected]> Cc: Benoit Canet <[email protected]> Cc: Kevin Wolf <[email protected]> Cc: Stefan Hajnoczi <[email protected]> Signed-off-by: Liu Yuan <[email protected]> Signed-off-by: Fam Zheng <[email protected]> --- block/quorum.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/block/quorum.c b/block/quorum.c index 093382e..41c4249 100644 --- a/block/quorum.c +++ b/block/quorum.c @@ -138,7 +138,9 @@ static void quorum_aio_cancel(BlockDriverAIOCB *blockacb) /* cancel all callbacks */ for (i = 0; i < s->num_children; i++) { - bdrv_aio_cancel(acb->qcrs[i].aiocb); + if (acb->qcrs[i].aiocb) { + bdrv_aio_cancel(acb->qcrs[i].aiocb); + } } g_free(acb->qcrs); -- 1.9.3
