On Mon, Sep 06, 2021 at 10:06:46PM +0300, Vladimir Sementsov-Ogievskiy wrote: > When we don't have a connection and blocking is false, we return NULL > but don't set errp. That's wrong.
Oops... > > We have two paths for calling nbd_co_establish_connection(): > > 1. nbd_open() -> nbd_do_establish_connection() -> ... > but that will never set blocking=false > > 2. nbd_reconnect_attempt() -> nbd_co_do_establish_connection() -> ... > but that uses errp=NULL > > So, we are safe with our wrong errp policy in > nbd_co_establish_connection(). Still let's fix it. ...phew! Thus, it's not critical to backport. Reviewed-by: Eric Blake <[email protected]> > > Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]> > --- > nbd/client-connection.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/nbd/client-connection.c b/nbd/client-connection.c > index 7123b1e189..695f855754 100644 > --- a/nbd/client-connection.c > +++ b/nbd/client-connection.c > @@ -318,6 +318,7 @@ nbd_co_establish_connection(NBDClientConnection *conn, > NBDExportInfo *info, > } > > if (!blocking) { > + error_setg(errp, "No connection at the moment"); > return NULL; > } > > -- > 2.29.2 > -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
