block/nbd: Delete reconnect delay timer when done
commit3ce1fc16bad9c3f8b7b10b451a224d6d76e5c551
authorHanna Reitz <hreitz@redhat.com>
Fri, 4 Feb 2022 11:10:06 +0000 (4 12:10 +0100)
committerVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Fri, 11 Feb 2022 13:05:36 +0000 (11 14:05 +0100)
tree93e915d67be5d1b584178d27a543cac979489f6c
parent0a301624c2f4ced3331ffd5bce85b4274fe132af
block/nbd: Delete reconnect delay timer when done

We start the reconnect delay timer to cancel the reconnection attempt
after a while.  Once nbd_co_do_establish_connection() has returned, this
attempt is over, and we no longer need the timer.

Delete it before returning from nbd_reconnect_attempt(), so that it does
not persist beyond the I/O request that was paused for reconnecting; we
do not want it to fire in a drained section, because all sort of things
can happen in such a section (e.g. the AioContext might be changed, and
we do not want the timer to fire in the wrong context; or the BDS might
even be deleted, and so the timer CB would access already-freed data).

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
block/nbd.c