summaryrefslogtreecommitdiffstats
path: root/src/kernel/mq.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/mq.c')
-rw-r--r--src/kernel/mq.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/kernel/mq.c b/src/kernel/mq.c
index f859c0f..f9e1bd2 100644
--- a/src/kernel/mq.c
+++ b/src/kernel/mq.c
@@ -109,18 +109,22 @@ void dndb3_reque_busy_requests(struct dnbd3_sock *sock)
blk_mq_tagset_busy_iter(set,(busy_tag_iter_fn *) dnbd3_busy_iter_requeue, sock);
}
-static void dnbd3_wait_for_sockets(struct dnbd3_cmd * cmd) {
+/**
+ * dnbd3_wait_for_sockets - wait for any socket to be alive or a disconnect
+ * @dev: the device
+ */
+static void dnbd3_wait_for_sockets(struct dnbd3_device *dev) {
int i;
bool wait = true;
- while (wait && cmd->dnbd3->connected) {
- for (i = 0; i < cmd->dnbd3->number_connections; i++) {
- if (dnbd3_is_sock_alive(cmd->dnbd3->socks[cmd->index])) {
+ while (wait && dev->connected) {
+ for (i = 0; i < dev->number_connections; i++) {
+ if (dnbd3_is_sock_alive(dev->socks[i])) {
wait = false;
}
- if (wait && cmd->dnbd3->connected) {
- debug("no socket alive sleeping");
- msleep(100);
- }
+ }
+ if (wait && dev->connected) {
+ debug("no socket alive sleeping");
+ msleep(100);
}
}
}
@@ -132,7 +136,7 @@ static void dnbd3_wait_for_sockets(struct dnbd3_cmd * cmd) {
void dnbd3_requeue_cmd(struct dnbd3_cmd *cmd)
{
struct request *req = blk_mq_rq_from_pdu(cmd);
- dnbd3_wait_for_sockets(cmd);
+ dnbd3_wait_for_sockets(cmd->dnbd3);
if (!cmd->requed/* && blk_queued_rq(req)*/) {
cmd->requed = true;
@@ -152,11 +156,6 @@ void dnbd3_end_cmd(struct dnbd3_cmd *cmd, blk_status_t error)
}
-void dnbd3_end_all_rq(struct dnbd3_device *dev)
-{
- struct request_queue *q = dev->disk->queue;
-}
-
/**
* dnbd3_handle_cmd - handles a mq command
* @cmd: the cmd to send