This adds a helper function to convert a block req op to a nbd cmd type.
It will be used in the last patch to log the type in the timeout
handler.

Signed-off-by: Mike Christie <[email protected]>
---
 drivers/block/nbd.c | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index cb2b98392ae5..131b541d07c3 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -342,6 +342,22 @@ static void sock_shutdown(struct nbd_device *nbd)
        dev_warn(disk_to_dev(nbd->disk), "shutting down sockets\n");
 }
 
+static u32 req_to_nbd_cmd_type(struct request *req)
+{
+       switch (req_op(req)) {
+       case REQ_OP_DISCARD:
+               return NBD_CMD_TRIM;
+       case REQ_OP_FLUSH:
+               return NBD_CMD_FLUSH;
+       case REQ_OP_WRITE:
+               return NBD_CMD_WRITE;
+       case REQ_OP_READ:
+               return NBD_CMD_READ;
+       default:
+               return U32_MAX;
+       }
+}
+
 static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
                                                 bool reserved)
 {
@@ -476,22 +492,9 @@ static int nbd_send_cmd(struct nbd_device *nbd, struct 
nbd_cmd *cmd, int index)
 
        iov_iter_kvec(&from, WRITE, &iov, 1, sizeof(request));
 
-       switch (req_op(req)) {
-       case REQ_OP_DISCARD:
-               type = NBD_CMD_TRIM;
-               break;
-       case REQ_OP_FLUSH:
-               type = NBD_CMD_FLUSH;
-               break;
-       case REQ_OP_WRITE:
-               type = NBD_CMD_WRITE;
-               break;
-       case REQ_OP_READ:
-               type = NBD_CMD_READ;
-               break;
-       default:
+       type = req_to_nbd_cmd_type(req);
+       if (type == U32_MAX)
                return -EIO;
-       }
 
        if (rq_data_dir(req) == WRITE &&
            (config->flags & NBD_FLAG_READ_ONLY)) {
-- 
2.20.1

Reply via email to