summaryrefslogtreecommitdiffstats
path: root/src/kernel/net.c
diff options
context:
space:
mode:
authorSimon Rettberg2021-04-20 15:49:48 +0200
committerSimon Rettberg2021-04-20 15:49:48 +0200
commit27784cd0f009f1750e9ad213b1c0910b98ffdb44 (patch)
treece1f742142ee5eda797c777eac7ec69d706d5428 /src/kernel/net.c
parent[KERNEL] Even more RTT fakery on manual server switch (diff)
downloaddnbd3-27784cd0f009f1750e9ad213b1c0910b98ffdb44.tar.gz
dnbd3-27784cd0f009f1750e9ad213b1c0910b98ffdb44.tar.xz
dnbd3-27784cd0f009f1750e9ad213b1c0910b98ffdb44.zip
[KERNEL] Improve debug output in net.c
Diffstat (limited to 'src/kernel/net.c')
-rw-r--r--src/kernel/net.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/kernel/net.c b/src/kernel/net.c
index b206d5a..0eb1d5e 100644
--- a/src/kernel/net.c
+++ b/src/kernel/net.c
@@ -471,7 +471,8 @@ static int dnbd3_net_send(void *data)
return 0;
cleanup:
- if (!atomic_read(&dev->connection_lock)) {
+ if (!atomic_read(&dev->connection_lock) && !kthread_should_stop()) {
+ dev_dbg(dnbd3_device_to_dev(dev), "send thread: Triggering panic mode...\n");
if (dev->sock)
kernel_sock_shutdown(dev->sock, SHUT_RDWR);
dev->panic = 1;
@@ -540,7 +541,6 @@ static int dnbd3_net_receive(void *data)
/* for all errors other than -EAGAIN, print message and abort thread */
if (!atomic_read(&dev->connection_lock))
dnbd3_dev_err_host_cur(dev, "connection to server lost (receive)\n");
- ret = -ESHUTDOWN;
goto cleanup;
}
}
@@ -548,7 +548,7 @@ static int dnbd3_net_receive(void *data)
/* check if arrived data is valid */
if (ret != sizeof(dnbd3_reply)) {
if (!atomic_read(&dev->connection_lock))
- dnbd3_dev_err_host_cur(dev, "recv msg header\n");
+ dnbd3_dev_err_host_cur(dev, "recv partial msg header (%d bytes)\n", ret);
ret = -EINVAL;
goto cleanup;
}
@@ -605,10 +605,14 @@ static int dnbd3_net_receive(void *data)
dnbd3_dev_dbg_host_cur(
dev, "remote peer has performed an orderly shutdown\n");
ret = 0;
+ } else if (ret < 0) {
+ if (!atomic_read(&dev->connection_lock))
+ dnbd3_dev_err_host_cur(dev,
+ "disconnect: receiving from net to block layer\n");
} else {
if (!atomic_read(&dev->connection_lock))
dnbd3_dev_err_host_cur(dev,
- "receiving from net to block layer\n");
+ "receiving from net to block layer (%d bytes)\n", ret);
ret = -EINVAL;
}
// Requeue request
@@ -696,7 +700,8 @@ static int dnbd3_net_receive(void *data)
return 0;
cleanup:
- if (!atomic_read(&dev->connection_lock)) {
+ if (!atomic_read(&dev->connection_lock) && !kthread_should_stop()) {
+ dev_dbg(dnbd3_device_to_dev(dev), "recv thread: Triggering panic mode...\n");
if (dev->sock)
kernel_sock_shutdown(dev->sock, SHUT_RDWR);
dev->panic = 1;