Thread (5 messages) 5 messages, 2 authors, 2019-02-01

Re: [RESEND PATCH 1/2] loop: Report EOPNOTSUPP properly

From: Evan Green <hidden>
Date: 2019-02-01 18:19:40
Also in: lkml

On Thu, Jan 31, 2019 at 3:31 PM Bart Van Assche [off-list ref] wrote:
On Thu, 2019-01-31 at 14:13 -0800, Evan Green wrote:
quoted
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index cf5538942834..a1ba555e3b92 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -458,8 +458,13 @@ static void lo_complete_rq(struct request *rq)

      if (!cmd->use_aio || cmd->ret < 0 || cmd->ret == blk_rq_bytes(rq) ||
          req_op(rq) != REQ_OP_READ) {
-             if (cmd->ret < 0)
-                     ret = BLK_STS_IOERR;
+             if (cmd->ret < 0) {
+                     if (cmd->ret == -EOPNOTSUPP)
+                             ret = BLK_STS_NOTSUPP;
+                     else
+                             ret = BLK_STS_IOERR;
+             }
Please do not nest if-conditions if that is not necessary. I think the
above code can be written more clearly as follows:

if (cmd->ret == -ENOTSUPP)
        ret = BLK_STS_NOTSUPP;
else if (cmd->ret < 0)
        ret = BLK_STS_IOERR;
Thanks for taking a look Bart. Will fix.
-Evan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help