Whamcloud - gitweb
LU-12273 obd: Reserve metadata overstriping flags 07/49707/5
authorPatrick Farrell <farr0186@gmail.com>
Thu, 19 Jan 2023 18:48:07 +0000 (13:48 -0500)
committerOleg Drokin <green@whamcloud.com>
Fri, 19 May 2023 07:01:15 +0000 (07:01 +0000)
Reserve flag bits for metadata overstriping.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <farr0186@gmail.com>
Change-Id: I894b9420a4b08cceaccca6b3184ecb3bd22a680c
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/49707
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Qian Yingjin <qian@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/include/uapi/linux/lustre/lustre_user.h
lustre/ptlrpc/wiretest.c
lustre/utils/liblustreapi.c
lustre/utils/wirecheck.c
lustre/utils/wiretest.c

index 6df699c..dc1af4e 100644 (file)
@@ -1080,6 +1080,8 @@ static inline bool lmv_is_known_hash_type(__u32 type)
               (type & LMV_HASH_TYPE_MASK) < LMV_HASH_TYPE_MAX;
 }
 
+/* This flag indicates that overstriping (>1 stripe per MDT) is desired */
+#define LMV_HASH_FLAG_OVERSTRIPED      0x01000000
 /* fixed layout, such directories won't split automatically */
 /* NB, update LMV_HASH_FLAG_KNOWN when adding new flag */
 #define LMV_HASH_FLAG_FIXED            0x02000000
index a06857d..1b5a59d 100644 (file)
@@ -1968,6 +1968,7 @@ void lustre_assert_wire_constants(void)
        BUILD_BUG_ON(LMV_MAGIC_V1 != 0x0CD20CD0);
        BUILD_BUG_ON(LMV_MAGIC_STRIPE != 0x0CD40CD0);
        BUILD_BUG_ON(LMV_HASH_TYPE_MASK != 0x0000ffff);
+       BUILD_BUG_ON(LMV_HASH_FLAG_OVERSTRIPED != 0x01000000);
        BUILD_BUG_ON(LMV_HASH_FLAG_FIXED != 0x02000000);
        BUILD_BUG_ON(LMV_HASH_FLAG_MERGE != 0x04000000);
        BUILD_BUG_ON(LMV_HASH_FLAG_SPLIT != 0x08000000);
index 43003de..58597de 100644 (file)
@@ -3070,6 +3070,8 @@ void lmv_dump_user_lmm(struct lmv_user_md *lum, char *pool_name,
                else
                        llapi_printf(LLAPI_MSG_NORMAL, "%#x", type);
 
+               if (flags & LMV_HASH_FLAG_OVERSTRIPED)
+                       llapi_printf(LLAPI_MSG_NORMAL, ",overstriped");
                if (flags & LMV_HASH_FLAG_MIGRATION)
                        llapi_printf(LLAPI_MSG_NORMAL, ",migrating");
                if (flags & LMV_HASH_FLAG_BAD_TYPE)
@@ -3078,7 +3080,10 @@ void lmv_dump_user_lmm(struct lmv_user_md *lum, char *pool_name,
                        llapi_printf(LLAPI_MSG_NORMAL, ",lost_lmv");
                if (flags & LMV_HASH_FLAG_FIXED)
                        llapi_printf(LLAPI_MSG_NORMAL, ",fixed");
-               if (flags & ~LMV_HASH_FLAG_KNOWN)
+               /* NB: OVERSTRIPED is not in KNOWN until implementation patch
+                * is landed, but we do recognize it
+                */
+               if (flags & ~(LMV_HASH_FLAG_KNOWN|LMV_HASH_FLAG_OVERSTRIPED))
                        llapi_printf(LLAPI_MSG_NORMAL, ",unknown_%04x",
                                     flags & ~LMV_HASH_FLAG_KNOWN);
 
index 210e431..59beef9 100644 (file)
@@ -955,6 +955,7 @@ check_lmv_mds_md_v1(void)
        CHECK_CDEFINE(LMV_MAGIC_V1);
        CHECK_CDEFINE(LMV_MAGIC_STRIPE);
        CHECK_CDEFINE(LMV_HASH_TYPE_MASK);
+       CHECK_CDEFINE(LMV_HASH_FLAG_OVERSTRIPED);
        CHECK_CDEFINE(LMV_HASH_FLAG_FIXED);
        CHECK_CDEFINE(LMV_HASH_FLAG_MERGE);
        CHECK_CDEFINE(LMV_HASH_FLAG_SPLIT);
index b72d09b..d110255 100644 (file)
@@ -2031,6 +2031,7 @@ void lustre_assert_wire_constants(void)
        BUILD_BUG_ON(LMV_MAGIC_V1 != 0x0CD20CD0);
        BUILD_BUG_ON(LMV_MAGIC_STRIPE != 0x0CD40CD0);
        BUILD_BUG_ON(LMV_HASH_TYPE_MASK != 0x0000ffff);
+       BUILD_BUG_ON(LMV_HASH_FLAG_OVERSTRIPED != 0x01000000);
        BUILD_BUG_ON(LMV_HASH_FLAG_FIXED != 0x02000000);
        BUILD_BUG_ON(LMV_HASH_FLAG_MERGE != 0x04000000);
        BUILD_BUG_ON(LMV_HASH_FLAG_SPLIT != 0x08000000);