]> granicus.if.org Git - strace/commitdiff
loop.c: optimize decoding of paired ioctls
authorDmitry V. Levin <ldv@altlinux.org>
Sun, 29 May 2016 22:15:53 +0000 (22:15 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 29 May 2016 22:15:53 +0000 (22:15 +0000)
* loop.c (loop_ioctl): Optimize decoding of LOOP_[GS]ET_STATUS
and LOOP_[GS]ET_STATUS64 ioctl pairs.

loop.c

diff --git a/loop.c b/loop.c
index 26aaca0bbed10d088e3b680bd066d8a30f0cebf9..178033d3fe651b553ddb44eb53169ed355668221 100644 (file)
--- a/loop.c
+++ b/loop.c
@@ -146,23 +146,19 @@ loop_ioctl(struct tcb *tcp, const unsigned int code, long arg)
                return RVAL_DECODED;
 
        switch (code) {
-       case LOOP_SET_STATUS:
-               decode_loop_info(tcp, arg);
-               break;
-
        case LOOP_GET_STATUS:
                if (entering(tcp))
                        return 0;
+               /* fall through */
+       case LOOP_SET_STATUS:
                decode_loop_info(tcp, arg);
                break;
 
-       case LOOP_SET_STATUS64:
-               decode_loop_info64(tcp, arg);
-               break;
-
        case LOOP_GET_STATUS64:
                if (entering(tcp))
                        return 0;
+               /* fall through */
+       case LOOP_SET_STATUS64:
                decode_loop_info64(tcp, arg);
                break;