summaryrefslogtreecommitdiffstats
path: root/src/kernel/net.c
diff options
context:
space:
mode:
authorJonathan Bauer2018-04-04 17:47:01 +0200
committerSimon Rettberg2018-04-05 12:28:13 +0200
commit928cdb2a034572d29cda884b927cca293baae211 (patch)
tree756d260b89628e18079302293b2a8f45a556d59c /src/kernel/net.c
parent[KERNEL] #ifs and #defines for timer pre/post 4.15 (diff)
downloaddnbd3-928cdb2a034572d29cda884b927cca293baae211.tar.gz
dnbd3-928cdb2a034572d29cda884b927cca293baae211.tar.xz
dnbd3-928cdb2a034572d29cda884b927cca293baae211.zip
[KERNEL] Pre/post 4.11 handling of request ops
Diffstat (limited to 'src/kernel/net.c')
-rw-r--r--src/kernel/net.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/kernel/net.c b/src/kernel/net.c
index 1609258..0b2098d 100644
--- a/src/kernel/net.c
+++ b/src/kernel/net.c
@@ -46,6 +46,9 @@
// Pack into cmd_flags field by shifting CMD_* into unused bits of cmd_flags
#define dnbd3_cmd_to_priv(req, cmd) (req)->cmd_flags = REQ_OP_DRV_IN | ((cmd) << REQ_FLAG_BITS)
#define dnbd3_priv_to_cmd(req) ((req)->cmd_flags >> REQ_FLAG_BITS)
+#define dnbd3_req_op(req) req_op(req)
+#define DNBD3_DEV_READ REQ_OP_READ
+#define DNBD3_REQ_OP_SPECIAL REQ_OP_DRV_IN
#else
// Old way with type and flags separated
#define dnbd3_cmd_to_priv(req, cmd) do { \
@@ -53,6 +56,9 @@
(req)->cmd_flags = (cmd); \
} while (0)
#define dnbd3_priv_to_cmd(req) (req)->cmd_flags
+#define dnbd3_req_op(req) (req)->cmd_type
+#define DNBD3_DEV_READ REQ_TYPE_FS
+#define DNBD3_REQ_OP_SPECIAL REQ_TYPE_SPECIAL
#endif
/**
@@ -875,10 +881,9 @@ int dnbd3_net_send(void *data)
spin_unlock_irqrestore(&dev->blk_lock, irqflags);
// what to do?
- switch (req_op(blk_request))
+ switch (dnbd3_req_op(blk_request))
{
- case REQ_OP_READ:
- case REQ_OP_WRITE:
+ case DNBD3_DEV_READ:
dnbd3_request.cmd = CMD_GET_BLOCK;
dnbd3_request.offset = blk_rq_pos(blk_request) << 9; // *512
dnbd3_request.size = blk_rq_bytes(blk_request); // bytes left to complete entire request
@@ -888,9 +893,7 @@ int dnbd3_net_send(void *data)
list_add_tail(&blk_request->queuelist, &dev->request_queue_receive);
spin_unlock_irqrestore(&dev->blk_lock, irqflags);
break;
-
- case REQ_OP_DRV_IN:
- case REQ_OP_DRV_OUT:
+ case DNBD3_REQ_OP_SPECIAL:
dnbd3_request.cmd = dnbd3_priv_to_cmd(blk_request);
dnbd3_request.size = 0;
spin_lock_irqsave(&dev->blk_lock, irqflags);
@@ -899,7 +902,7 @@ int dnbd3_net_send(void *data)
break;
default:
- printk("ERROR: Unknown command (send %u %u)\n", (int)blk_request->cmd_flags, (int)req_op(blk_request));
+ printk("ERROR: Unknown command (send %u %u)\n", (int)blk_request->cmd_flags, (int)dnbd3_req_op(blk_request));
spin_lock_irqsave(&dev->blk_lock, irqflags);
list_del_init(&blk_request->queuelist);
spin_unlock_irqrestore(&dev->blk_lock, irqflags);