49 lines
1.5 KiB
Diff
49 lines
1.5 KiB
Diff
|
|
From 6a49e752439f02ef9ccaac30d14acf185e31a261 Mon Sep 17 00:00:00 2001
|
||
|
|
From: Zhang Bo <oscar.zhangbo@huawei.com>
|
||
|
|
Date: Mon, 29 Aug 2022 15:35:36 +0800
|
||
|
|
Subject: [PATCH 3/5] block/nbd: Delete open timer when done
|
||
|
|
|
||
|
|
We start the open timer to cancel the connection attempt after a while.
|
||
|
|
Once nbd_do_establish_connection() has returned, the attempt is over,
|
||
|
|
and we no longer need the timer.
|
||
|
|
|
||
|
|
Delete it before returning from nbd_open(), so that it does not persist
|
||
|
|
for longer. It has no use after nbd_open(), and just like the reconnect
|
||
|
|
delay timer, it might well be dangerous if it were to fire afterwards.
|
||
|
|
|
||
|
|
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>
|
||
|
|
Signed-off-by: Zhang Bo <oscar.zhangbo@huawei.com>
|
||
|
|
---
|
||
|
|
block/nbd.c | 8 ++++++++
|
||
|
|
1 file changed, 8 insertions(+)
|
||
|
|
|
||
|
|
diff --git a/block/nbd.c b/block/nbd.c
|
||
|
|
index 16cd7fef77..5ff8a57314 100644
|
||
|
|
--- a/block/nbd.c
|
||
|
|
+++ b/block/nbd.c
|
||
|
|
@@ -1885,11 +1885,19 @@ static int nbd_open(BlockDriverState *bs, QDict *options, int flags,
|
||
|
|
goto fail;
|
||
|
|
}
|
||
|
|
|
||
|
|
+ /*
|
||
|
|
+ * The connect attempt is done, so we no longer need this timer.
|
||
|
|
+ * Delete it, because we do not want it to be around when this node
|
||
|
|
+ * is drained or closed.
|
||
|
|
+ */
|
||
|
|
+ open_timer_del(s);
|
||
|
|
+
|
||
|
|
nbd_client_connection_enable_retry(s->conn);
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
|
||
|
|
fail:
|
||
|
|
+ open_timer_del(s);
|
||
|
|
nbd_clear_bdrvstate(bs);
|
||
|
|
return ret;
|
||
|
|
}
|
||
|
|
--
|
||
|
|
2.27.0
|
||
|
|
|