79c4324644
Change-Id: I2d302dda68298877c65c99147f5bf22186a59aac
43 lines
1.1 KiB
Diff
43 lines
1.1 KiB
Diff
From f665f7836a019cc8bb8d46d076508afc761923f0 Mon Sep 17 00:00:00 2001
|
|
From: WangJian <wangjian161@huawei.com>
|
|
Date: Wed, 9 Feb 2022 10:55:08 +0800
|
|
Subject: [PATCH] qemu-nbd: set timeout to qemu-nbd socket
|
|
|
|
In case of insufficient memory and kill-9,
|
|
the NBD socket cannot be processed and stuck all the time.
|
|
|
|
Signed-off-by: wangjian161 <wangjian161@huawei.com>
|
|
---
|
|
nbd/client.c | 8 ++++++++
|
|
1 file changed, 8 insertions(+)
|
|
|
|
diff --git a/nbd/client.c b/nbd/client.c
|
|
index 30d5383cb1..8ed50140f2 100644
|
|
--- a/nbd/client.c
|
|
+++ b/nbd/client.c
|
|
@@ -24,6 +24,8 @@
|
|
#include "nbd-internal.h"
|
|
#include "qemu/cutils.h"
|
|
|
|
+#define NBD_TIMEOUT_SECONDS 30
|
|
+
|
|
/* Definitions for opaque data types */
|
|
|
|
static QTAILQ_HEAD(, NBDExport) exports = QTAILQ_HEAD_INITIALIZER(exports);
|
|
@@ -1301,6 +1303,12 @@ int nbd_init(int fd, QIOChannelSocket *sioc, NBDExportInfo *info,
|
|
}
|
|
}
|
|
|
|
+ if (ioctl(fd, NBD_SET_TIMEOUT, NBD_TIMEOUT_SECONDS) < 0) {
|
|
+ int serrno = errno;
|
|
+ error_setg(errp, "Failed setting timeout");
|
|
+ return -serrno;
|
|
+ }
|
|
+
|
|
trace_nbd_init_finish();
|
|
|
|
return 0;
|
|
--
|
|
2.27.0
|
|
|