Whamcloud - gitweb
EX-8353 csdc: remove holes from struct ll_compr_hdr
authorJian Yu <yujian@whamcloud.com>
Thu, 19 Oct 2023 18:01:59 +0000 (11:01 -0700)
committerAndreas Dilger <adilger@whamcloud.com>
Fri, 27 Oct 2023 21:47:52 +0000 (21:47 +0000)
This patch reorganizes struct ll_compr_hdr to remove
alignment holes.

Test-Parameters: trivial
Change-Id: I59800b00e3a17972d621bae21ba06509a39b1036
Signed-off-by: Jian Yu <yujian@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/52753
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/include/uapi/linux/lustre/lustre_idl.h
lustre/ptlrpc/wiretest.c
lustre/utils/wirecheck.c
lustre/utils/wiretest.c

index 462e9a4..8a9a760 100644 (file)
@@ -3793,11 +3793,11 @@ struct ladvise_hdr {
 struct ll_compr_hdr {
        __u64 llch_magic:48;     /* LLCH_MAGIC */
        __u8  llch_header_size;  /* for future extensions */
-       __u8  llch_exta_flags;
+       __u8  llch_extra_flags;
+       __u16 llch_flags;
        __u8  llch_compr_type;    /* LLCH_COMP_GZIP, LLCH_COMP_LZ4, */
-       __u8  llch_compr_level:4; /* per-algorithm mapped level */
-       __u8  llch_flags:4;
-       __u8  llch_chunk_log_bits;
+       __u8  llch_compr_level:4, /* per-algorithm mapped level */
+             llch_chunk_log_bits:4;
        __u32 llch_compr_size;    /* bytes of compressed data */
        __u32 llch_reserved;     /* unused, initialize to 0 */
        __u32 llch_uncompr_csum; /* crc32 of raw data, or 0 */
index bfc516b..2fc3523 100644 (file)
@@ -787,22 +787,26 @@ void lustre_assert_wire_constants(void)
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_header_size));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_header_size) == 1, "found %lld\n",
                 (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_header_size));
-       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_exta_flags) == 7, "found %lld\n",
-                (long long)(int)offsetof(struct ll_compr_hdr, llch_exta_flags));
-       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_exta_flags) == 1, "found %lld\n",
-                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_exta_flags));
-       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_compr_type) == 8, "found %lld\n",
+       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_extra_flags) == 7, "found %lld\n",
+                (long long)(int)offsetof(struct ll_compr_hdr, llch_extra_flags));
+       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_extra_flags) == 1, "found %lld\n",
+                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_extra_flags));
+       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_flags) == 8, "found %lld\n",
+                (long long)(int)offsetof(struct ll_compr_hdr, llch_flags));
+       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_flags) == 2, "found %lld\n",
+                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_flags));
+       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_compr_type) == 10, "found %lld\n",
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_compr_type));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_type) == 1, "found %lld\n",
                 (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_type));
-       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_chunk_log_bits) == 10, "found %lld\n",
-                (long long)(int)offsetof(struct ll_compr_hdr, llch_chunk_log_bits));
-       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_chunk_log_bits) == 1, "found %lld\n",
-                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_chunk_log_bits));
        LASSERTF((int)offsetof(struct ll_compr_hdr, llch_compr_size) == 12, "found %lld\n",
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_compr_size));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_size) == 4, "found %lld\n",
                 (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_size));
+       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_reserved) == 16, "found %lld\n",
+                (long long)(int)offsetof(struct ll_compr_hdr, llch_reserved));
+       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_reserved) == 4, "found %lld\n",
+                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_reserved));
        LASSERTF((int)offsetof(struct ll_compr_hdr, llch_uncompr_csum) == 20, "found %lld\n",
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_uncompr_csum));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_uncompr_csum) == 4, "found %lld\n",
@@ -811,10 +815,6 @@ void lustre_assert_wire_constants(void)
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_compr_csum));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_csum) == 4, "found %lld\n",
                 (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_csum));
-       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_reserved) == 16, "found %lld\n",
-                (long long)(int)offsetof(struct ll_compr_hdr, llch_reserved));
-       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_reserved) == 4, "found %lld\n",
-                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_reserved));
        LASSERTF((int)offsetof(struct ll_compr_hdr, llch_hdr_csum) == 28, "found %lld\n",
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_hdr_csum));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_hdr_csum) == 4, "found %lld\n",
index a0f63c0..a3fe94e 100644 (file)
@@ -399,23 +399,17 @@ check_ll_compr_hdr(void)
 {
        BLANK_LINE();
        CHECK_STRUCT(ll_compr_hdr);
-       /* bit-field structure member cannot be checked */
-       /*
-       CHECK_MEMBER(ll_compr_hdr, llch_magic:48);
-       */
+       CHECK_BITFIELD(ll_compr_hdr, llch_magic);
        CHECK_MEMBER(ll_compr_hdr, llch_header_size);
-       CHECK_MEMBER(ll_compr_hdr, llch_exta_flags); 
+       CHECK_MEMBER(ll_compr_hdr, llch_extra_flags);
+       CHECK_MEMBER(ll_compr_hdr, llch_flags);
        CHECK_MEMBER(ll_compr_hdr, llch_compr_type);
-       /* bit-field structure member cannot be checked */
-       /*
-       CHECK_MEMBER(ll_compr_hdr, llch_comp_level:4);
-       CHECK_MEMBER(ll_compr_hdr, llch_flags:4);
-       */
-       CHECK_MEMBER(ll_compr_hdr, llch_chunk_log_bits);
+       CHECK_BITFIELD(ll_compr_hdr, llch_comp_level);
+       CHECK_BITFIELD(ll_compr_hdr, llch_chunk_log_bits);
        CHECK_MEMBER(ll_compr_hdr, llch_compr_size);
+       CHECK_MEMBER(ll_compr_hdr, llch_reserved);
        CHECK_MEMBER(ll_compr_hdr, llch_uncompr_csum);
        CHECK_MEMBER(ll_compr_hdr, llch_compr_csum);
-       CHECK_MEMBER(ll_compr_hdr, llch_reserved);
        CHECK_MEMBER(ll_compr_hdr, llch_hdr_csum);
 
        CHECK_VALUE(LLCH_MAGIC);
index 44c8a6d..b881ef8 100644 (file)
@@ -823,22 +823,26 @@ void lustre_assert_wire_constants(void)
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_header_size));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_header_size) == 1, "found %lld\n",
                 (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_header_size));
-       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_exta_flags) == 7, "found %lld\n",
-                (long long)(int)offsetof(struct ll_compr_hdr, llch_exta_flags));
-       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_exta_flags) == 1, "found %lld\n",
-                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_exta_flags));
-       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_compr_type) == 8, "found %lld\n",
+       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_extra_flags) == 7, "found %lld\n",
+                (long long)(int)offsetof(struct ll_compr_hdr, llch_extra_flags));
+       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_extra_flags) == 1, "found %lld\n",
+                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_extra_flags));
+       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_flags) == 8, "found %lld\n",
+                (long long)(int)offsetof(struct ll_compr_hdr, llch_flags));
+       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_flags) == 2, "found %lld\n",
+                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_flags));
+       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_compr_type) == 10, "found %lld\n",
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_compr_type));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_type) == 1, "found %lld\n",
                 (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_type));
-       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_chunk_log_bits) == 10, "found %lld\n",
-                (long long)(int)offsetof(struct ll_compr_hdr, llch_chunk_log_bits));
-       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_chunk_log_bits) == 1, "found %lld\n",
-                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_chunk_log_bits));
        LASSERTF((int)offsetof(struct ll_compr_hdr, llch_compr_size) == 12, "found %lld\n",
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_compr_size));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_size) == 4, "found %lld\n",
                 (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_size));
+       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_reserved) == 16, "found %lld\n",
+                (long long)(int)offsetof(struct ll_compr_hdr, llch_reserved));
+       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_reserved) == 4, "found %lld\n",
+                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_reserved));
        LASSERTF((int)offsetof(struct ll_compr_hdr, llch_uncompr_csum) == 20, "found %lld\n",
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_uncompr_csum));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_uncompr_csum) == 4, "found %lld\n",
@@ -847,10 +851,6 @@ void lustre_assert_wire_constants(void)
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_compr_csum));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_csum) == 4, "found %lld\n",
                 (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_compr_csum));
-       LASSERTF((int)offsetof(struct ll_compr_hdr, llch_reserved) == 16, "found %lld\n",
-                (long long)(int)offsetof(struct ll_compr_hdr, llch_reserved));
-       LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_reserved) == 4, "found %lld\n",
-                (long long)(int)sizeof(((struct ll_compr_hdr *)0)->llch_reserved));
        LASSERTF((int)offsetof(struct ll_compr_hdr, llch_hdr_csum) == 28, "found %lld\n",
                 (long long)(int)offsetof(struct ll_compr_hdr, llch_hdr_csum));
        LASSERTF((int)sizeof(((struct ll_compr_hdr *)0)->llch_hdr_csum) == 4, "found %lld\n",