diff options
-rw-r--r-- | src/kernel/core.c | 2 | ||||
-rw-r--r-- | src/kernel/dnbd3.h | 9 | ||||
-rw-r--r-- | src/kernel/mq.c | 15 | ||||
-rw-r--r-- | src/kernel/mq.h | 5 | ||||
-rw-r--r-- | src/kernel/net-txrx.h | 8 | ||||
-rw-r--r-- | src/kernel/net.c | 31 | ||||
-rw-r--r-- | src/kernel/net.h | 12 |
7 files changed, 41 insertions, 41 deletions
diff --git a/src/kernel/core.c b/src/kernel/core.c index 6e9ce2b..874980b 100644 --- a/src/kernel/core.c +++ b/src/kernel/core.c @@ -212,7 +212,7 @@ static int dnbd3_ioctl(struct block_device *bdev, fmode_t mode, break; default: - warn_dev(dev, "ioctl unhandled cmd %d", cmd); + debug_dev(dev, "ioctl unhandled cmd %d", cmd); result = -EIO; break; } diff --git a/src/kernel/dnbd3.h b/src/kernel/dnbd3.h index 848acdd..437edec 100644 --- a/src/kernel/dnbd3.h +++ b/src/kernel/dnbd3.h @@ -76,7 +76,6 @@ struct dnbd3_server { * @server: the server this socket is connected to, 'NULL' if not connected * @tx_lock: mutex to lock when sending * @sock: the socket, 'NULL' if not connected - * @panic: 'true' if it is not possible to send or receive * @cookie: is incremented for every send, used to find the mq request in the * receiver * @keepalive_worker: worker to send a keepalive package @@ -91,7 +90,6 @@ struct dnbd3_sock { struct mutex tx_lock; struct socket *sock; -// bool panic; uint32_t cookie; struct work_struct keepalive_worker; @@ -108,10 +106,10 @@ struct dnbd3_sock { * @disk: the gendisk * @kobj: the kobject * @device_lock: mutex to lock when device changes - * @socks: array of dnbd3_sock to connect to + * @connected: 'true' when device is connected + * @number_connections: the nummber of parallel connections + * @socks: array of dnbd3_sock to connect to, the size is number_connections * @imgname: the connected image name - * @initial_server: the server which was configured with ioctl, will not be - * overriden * @alt_servers: array of alternative servers * @new_servers_num: number of new alternative servers that are waiting to be * copied to above array @@ -165,7 +163,6 @@ struct dnbd3_device { * @dnbd3: the dnbd3 device this command belongs to * @lock: mutex to lock the cmd * @cookie: the cookie of the command, this is set by the socket when sending - * @status: the status of the command * @requed: 'true' if the command is requed */ struct dnbd3_cmd { diff --git a/src/kernel/mq.c b/src/kernel/mq.c index d83f7e4..34a8a5b 100644 --- a/src/kernel/mq.c +++ b/src/kernel/mq.c @@ -25,9 +25,9 @@ #include <linux/blk-mq.h> /** - * dnbd3_busy_iter - iterator for blk_mq_tagset_busy_iter + * dnbd3_busy_iter - iterator to set a bit for busy reqeust * @req: the request - * @priv: the passed argument from blk_mq_tagset_busy_iter + * @priv: the passed argument busy * @arg: unknown */ static void dnbd3_busy_iter(struct request *req, void *priv, bool arg) @@ -70,6 +70,13 @@ unsigned long dnbd3_is_mq_busy(struct dnbd3_device *dev) return busy; } + +/** + * dnbd3_busy_iter - iterator to requeue inflight commands + * @req: the request + * @priv: the passed argument from blk_mq_tagset_busy_iter + * @arg: unknown + */ static void dnbd3_busy_iter_requeue(struct request *req, void *priv, bool arg) { struct dnbd3_sock *sock = priv; @@ -83,6 +90,10 @@ static void dnbd3_busy_iter_requeue(struct request *req, void *priv, bool arg) mutex_unlock(&cmd->lock); } +/** + * dndb3_reque_busy_requests - reque busy (inflight) requests + * @sock: the socket + */ void dndb3_reque_busy_requests(struct dnbd3_sock *sock) { struct blk_mq_tag_set *set = &sock->device->tag_set; diff --git a/src/kernel/mq.h b/src/kernel/mq.h index c29e99a..fad285c 100644 --- a/src/kernel/mq.h +++ b/src/kernel/mq.h @@ -32,6 +32,11 @@ */ unsigned long dnbd3_is_mq_busy(struct dnbd3_device *dev); + +/** + * dndb3_reque_busy_requests - reque busy (inflight) requests + * @sock: the socket + */ void dndb3_reque_busy_requests(struct dnbd3_sock *sock); /** diff --git a/src/kernel/net-txrx.h b/src/kernel/net-txrx.h index 3636ffe..3c57ca4 100644 --- a/src/kernel/net-txrx.h +++ b/src/kernel/net-txrx.h @@ -29,6 +29,14 @@ #define dnbd3_is_sock_alive(s) ((s).sock && (s).server) +/** + * dnbd3_send_request - send a request + * @sock: the socket where the request is send + * @req: the request to send + * @cmd: optional - the dnbd3_cmd from mq + * + * the tx_lock of the socket must be held + */ int dnbd3_send_request(struct dnbd3_sock *sock, struct request *req, struct dnbd3_cmd *cmd); /** diff --git a/src/kernel/net.c b/src/kernel/net.c index 0cedb4c..a837702 100644 --- a/src/kernel/net.c +++ b/src/kernel/net.c @@ -235,37 +235,6 @@ static struct dnbd3_server **dnbd3_sort_server(struct dnbd3_device *dev) { return sorted_servers; } -//static int dnbd3_panic_connect(struct dnbd3_device *dev) -//{ -// struct dnbd3_server *working = NULL; -// int i; -// debug_dev(dev, "panic connect"); -// for (i = 0; i < NUMBER_CONNECTIONS; i++) { -// if (dnbd3_is_sock_alive(dev->socks[i])) { -// working = dev->socks[i].server; -// debug_server(dev, working, "found server for panic"); -// } -// } -// if (working == NULL) { -// for (i = 0; i < NUMBER_SERVERS; i++) { -// if (!dnbd3_socket_connect(&dev->socks[0], -// &dev->alt_servers[i])) { -// working = &dev->alt_servers[i]; -// debug_server(dev, working, "found server for panic"); -// } -// } -// } -// if (working == NULL) { -// return -ENOENT; -// } -// for (i = 0; i < NUMBER_CONNECTIONS; i++) { -// if (dev->socks[i].server != working) { -// dnbd3_socket_connect(&dev->socks[i], working); -// } -// } -// return 0; -//} - /** * dnbd3_compare_servers - comparator for the connecion plan * @lhs: left hand sign diff --git a/src/kernel/net.h b/src/kernel/net.h index b8df66e..5800e42 100644 --- a/src/kernel/net.h +++ b/src/kernel/net.h @@ -25,8 +25,18 @@ #include "dnbd3.h" - +/** + * dnbd3_net_connect - connect device + * @dev: the device to connect + * + * dnbd3_device.alt_servers[0] must be set + */ int dnbd3_net_connect(struct dnbd3_device *dev); + +/** + * dnbd3_net_disconnect - disconnect device + * @dev: the device to disconnect + */ int dnbd3_net_disconnect(struct dnbd3_device *dev); #endif /* NET_H_ */ |