]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
LINUX 5.3: Add comments for fallthrough switch cases
authorCheyenne Wills <cwills@sinenomine.net>
Tue, 1 Oct 2019 18:14:41 +0000 (12:14 -0600)
committerStephan Wiesand <stephan.wiesand@desy.de>
Sun, 26 Jan 2020 20:24:41 +0000 (15:24 -0500)
With commit 6e0f1c3b45102e7644d25cf34395ca980414317f (LINUX: Honor
--enable-checking for libafs) building libafs against a linux 5.3
kernel compiles with errors due to fall through in case statements when
--enable-checking / --enable-warning is used.

e.g.
  src/opr/jhash.h:82:17: error: this statement may fall through
                                [-Werror=implicit-fallthrough=]
         case 3 : c+=k[2];
                  ~^~~~~~

The GCC compiler will disable the implicit-fallthrough check for case
statements that contain a "special" comment ( /* fall through */ ).

Add the 'fall through' comment to indicate where fall throughs are
acceptable.

This commit only adds comments and does not alter any executable code.

The -Wimplicit-fallthrough flag was enabled globally in the linux kernel
build in 5.3-rc2 (commit: a035d552a93bb9ef6048733bb9f2a0dc857ff869
Makefile: Globally enable fall-through warning)

Reviewed-on: https://gerrit.openafs.org/13881
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit a455452d7ee98d160620925bb8a0e3d0f4dfd7ec)

Change-Id: Icad4b5923d971e7519f5d5259cd9c009c40c0d7a
Reviewed-on: https://gerrit.openafs.org/13910
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/afs/LINUX/osi_vnodeops.c
src/opr/jhash.h
src/rx/xdr.c

index ac70913c624e518ba10952b38a8d5e5efd09964e..d8487afb33964117d8dbdd6e6c551de6aa1b9a26 100644 (file)
@@ -2594,6 +2594,7 @@ afs_linux_can_bypass(struct inode *ip) {
        case LARGE_FILES_BYPASS_CACHE:
            if (i_size_read(ip) > cache_bypass_threshold)
                return 1;
+           /* fall through */
        default:
            return 0;
      }
index 9c82f9c98a28bd99f25dfa2af595f5ae6f50b7ee..4568f567c1ef1680015b14cc42634ea7ea80a2ee 100644 (file)
@@ -80,9 +80,12 @@ opr_jhash(const afs_uint32 *k, size_t length, afs_uint32 initval)
     /* All the case statements fall through */
     switch(length) {
       case 3 : c+=k[2];
+       /* fall through */
       case 2 : b+=k[1];
+       /* fall through */
       case 1 : a+=k[0];
        opr_jhash_final(a, b, c);
+       /* fall through */
       case 0:     /* case 0: nothing left to add */
        break;
     }
index f370723398135773ed36d42775d6398a57ab7e28..b1efad33e8a05d618165b9adff1337aae98fe5c2 100644 (file)
@@ -424,7 +424,7 @@ xdr_bytes(XDR * xdrs, char **cpp, u_int * sizep,
        if (sp == NULL) {
            return (FALSE);
        }
-       /* fall into ... */
+       /* fall through */
 
     case XDR_ENCODE:
        return (xdr_opaque(xdrs, sp, nodesize));
@@ -547,7 +547,7 @@ xdr_string(XDR * xdrs, char **cpp, u_int maxsize)
            return (FALSE);
        }
        sp[size] = 0;
-       /* fall into ... */
+       /* fall through */
 
     case XDR_ENCODE:
        return (xdr_opaque(xdrs, sp, size));