The secondary qemu starts later than the primary qemu, so we cannot connect to nbd server in bdrv_open(). Introduce a new open flags to control it.
Signed-off-by: Wen Congyang <we...@cn.fujitsu.com> Signed-off-by: zhanghailiang <zhang.zhanghaili...@huawei.com> Signed-off-by: Gonglei <arei.gong...@huawei.com> --- block/nbd.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/block/nbd.c b/block/nbd.c index bc9477a..4964cf8 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -298,11 +298,13 @@ static int nbd_open(BlockDriverState *bs, QDict *options, int flags, return -EINVAL; } - nbd_connect_server(bs, &local_err); - if (local_err) { - error_propagate(errp, local_err); - g_free(s->export); - return -EINVAL; + if (!(flags & BDRV_O_NO_CONNECT)) { + nbd_connect_server(bs, &local_err); + if (local_err) { + error_propagate(errp, local_err); + g_free(s->export); + return -EINVAL; + } } return 0; -- 2.1.0