ecryptfs: use ARRAY_SIZE
authorJérémy Lefaure <jeremy.lefaure@lse.epita.fr>
Sun, 1 Oct 2017 19:30:46 +0000 (15:30 -0400)
committerTyler Hicks <tyhicks@canonical.com>
Mon, 6 Nov 2017 18:23:59 +0000 (18:23 +0000)
Using the ARRAY_SIZE macro improves the readability of the code.

Found with Coccinelle with the following semantic patch:
@r depends on (org || report)@
type T;
T[] E;
position p;
@@
(
 (sizeof(E)@p /sizeof(*E))
|
 (sizeof(E)@p /sizeof(E[...]))
|
 (sizeof(E)@p /sizeof(T))
)

Signed-off-by: Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
fs/ecryptfs/crypto.c

index 1cd0902bc936d728ea9322ad31101c8b1cf0750d..846ca150d52e9259e5ded67abfe708a9f5c4084e 100644 (file)
@@ -36,6 +36,7 @@
 #include <linux/scatterlist.h>
 #include <linux/slab.h>
 #include <asm/unaligned.h>
+#include <linux/kernel.h>
 #include "ecryptfs_kernel.h"
 
 #define DECRYPT                0
@@ -884,8 +885,7 @@ static int ecryptfs_process_flags(struct ecryptfs_crypt_stat *crypt_stat,
        u32 flags;
 
        flags = get_unaligned_be32(page_virt);
-       for (i = 0; i < ((sizeof(ecryptfs_flag_map)
-                         / sizeof(struct ecryptfs_flag_map_elem))); i++)
+       for (i = 0; i < ARRAY_SIZE(ecryptfs_flag_map); i++)
                if (flags & ecryptfs_flag_map[i].file_flag) {
                        crypt_stat->flags |= ecryptfs_flag_map[i].local_flag;
                } else
@@ -922,8 +922,7 @@ void ecryptfs_write_crypt_stat_flags(char *page_virt,
        u32 flags = 0;
        int i;
 
-       for (i = 0; i < ((sizeof(ecryptfs_flag_map)
-                         / sizeof(struct ecryptfs_flag_map_elem))); i++)
+       for (i = 0; i < ARRAY_SIZE(ecryptfs_flag_map); i++)
                if (crypt_stat->flags & ecryptfs_flag_map[i].local_flag)
                        flags |= ecryptfs_flag_map[i].file_flag;
        /* Version is in top 8 bits of the 32-bit flag vector */