diff options
author | Frederic Robra | 2019-09-03 11:25:19 +0200 |
---|---|---|
committer | Frederic Robra | 2019-09-03 11:25:19 +0200 |
commit | 93dc338dfd719f02290639394ad7bd1800b971e4 (patch) | |
tree | 7ef910ee823a4362ad2c46963bd1d92c263d1170 /src/kernel/net-txrx.c | |
parent | splitted net (diff) | |
download | dnbd3-ng-93dc338dfd719f02290639394ad7bd1800b971e4.tar.gz dnbd3-ng-93dc338dfd719f02290639394ad7bd1800b971e4.tar.xz dnbd3-ng-93dc338dfd719f02290639394ad7bd1800b971e4.zip |
added support to requeue busy requests
Diffstat (limited to 'src/kernel/net-txrx.c')
-rw-r--r-- | src/kernel/net-txrx.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/kernel/net-txrx.c b/src/kernel/net-txrx.c index d905ce9..7226a3e 100644 --- a/src/kernel/net-txrx.c +++ b/src/kernel/net-txrx.c @@ -183,6 +183,8 @@ error: * dnbd3_send_request_cmd - send a dndb3 cmd * @sock: the socket where the request is send * @dnbd3_cmd: the dnbd3 cmd to send + * + * the tx_lock of the socket must be held */ int dnbd3_send_request_cmd(struct dnbd3_sock *sock, uint16_t dnbd3_cmd) { @@ -211,10 +213,12 @@ int dnbd3_send_request_cmd(struct dnbd3_sock *sock, uint16_t dnbd3_cmd) goto error; } - mutex_lock(&sock->tx_lock); + if (unlikely(!sock->sock)) { + result = -EIO; + goto error; + } sock->pending = req; result = dnbd3_send_request(sock, req, NULL); - mutex_unlock(&sock->tx_lock); error: if (req) { |