CAT_UID = BIT(7),
CAT_GID = BIT(8),
CAT_PROJID = BIT(9),
+ CAT_COMPRESSIBLE= BIT(10),
};
/**
#define OBD_CONNECT2_UNALIGNED_DIO 0x400000000ULL /* unaligned DIO */
#define OBD_CONNECT2_CONN_POLICY 0x800000000ULL /* server-side connection policy */
#define OBD_CONNECT2_MIRROR_ID_FIX 0x2000000000ULL /* rr_mirror_id move */
+#define OBD_CONNECT2_UPDATE_LAYOUT 0x4000000000ULL /* update compressibility */
/* XXX README XXX README XXX README XXX README XXX README XXX README XXX
* Please DO NOT add OBD_CONNECT flags before first ensuring that this value
* is not in use by some other branch/patch. Email adilger@whamcloud.com
LAYOUT_INTENT_RESTORE = 6, /** reserved for HSM restore */
LAYOUT_INTENT_PCCRO_SET = 7, /** set read-only layout for PCC */
LAYOUT_INTENT_PCCRO_CLEAR = 8, /** clear read-only layout */
+ LAYOUT_INTENT_CHANGE = 9, /** change layout flag */
+};
+
+/**
+ * used for lai_flags/lai_values, 32bit field; if a bit is set in lai_flags,
+ * and the corresponding bit value in lai_values determines whether that state
+ * should be set or cleared.
+ */
+enum layout_intent_flags {
+ LAIF_INCOMPRESSIBLE = 1U << 0, /* 0x0001 change compressibility */
};
/* enqueue layout lock with intent */
"conn_policy", /* 0x800000000 */
"sparse_read", /* 0x1000000000 */
"mirror_id_fix", /* 0x2000000000 */
+ "update_layout", /* 0x4000000000 */
NULL
};
OBD_CONNECT2_CONN_POLICY);
LASSERTF(OBD_CONNECT2_MIRROR_ID_FIX == 0x2000000000ULL, "found 0x%.16llxULL\n",
OBD_CONNECT2_MIRROR_ID_FIX);
+ LASSERTF(OBD_CONNECT2_UPDATE_LAYOUT == 0x4000000000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_UPDATE_LAYOUT);
LASSERTF(OBD_CKSUM_CRC32 == 0x00000001UL, "found 0x%.8xUL\n",
(unsigned)OBD_CKSUM_CRC32);
(long long)LAYOUT_INTENT_PCCRO_SET);
LASSERTF(LAYOUT_INTENT_PCCRO_CLEAR == 8, "found %lld\n",
(long long)LAYOUT_INTENT_PCCRO_CLEAR);
+ LASSERTF(LAYOUT_INTENT_CHANGE == 9, "found %lld\n",
+ (long long)LAYOUT_INTENT_CHANGE);
+ LASSERTF(LAIF_INCOMPRESSIBLE == 1, "found %lld\n",
+ (long long)LAIF_INCOMPRESSIBLE);
/* Checks for struct hsm_action_item */
LASSERTF((int)sizeof(struct hsm_action_item) == 72, "found %lld\n",
CHECK_DEFINE_64X(OBD_CONNECT2_UNALIGNED_DIO);
CHECK_DEFINE_64X(OBD_CONNECT2_CONN_POLICY);
CHECK_DEFINE_64X(OBD_CONNECT2_MIRROR_ID_FIX);
+ CHECK_DEFINE_64X(OBD_CONNECT2_UPDATE_LAYOUT);
BLANK_LINE();
CHECK_VALUE_X(OBD_CKSUM_CRC32);
CHECK_VALUE(LAYOUT_INTENT_RESTORE);
CHECK_VALUE(LAYOUT_INTENT_PCCRO_SET);
CHECK_VALUE(LAYOUT_INTENT_PCCRO_CLEAR);
+ CHECK_VALUE(LAYOUT_INTENT_CHANGE);
+
+ CHECK_VALUE(LAIF_INCOMPRESSIBLE);
}
static void check_hsm_state_set(void)
OBD_CONNECT2_CONN_POLICY);
LASSERTF(OBD_CONNECT2_MIRROR_ID_FIX == 0x2000000000ULL, "found 0x%.16llxULL\n",
OBD_CONNECT2_MIRROR_ID_FIX);
+ LASSERTF(OBD_CONNECT2_UPDATE_LAYOUT == 0x4000000000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_UPDATE_LAYOUT);
LASSERTF(OBD_CKSUM_CRC32 == 0x00000001UL, "found 0x%.8xUL\n",
(unsigned)OBD_CKSUM_CRC32);
(long long)LAYOUT_INTENT_PCCRO_SET);
LASSERTF(LAYOUT_INTENT_PCCRO_CLEAR == 8, "found %lld\n",
(long long)LAYOUT_INTENT_PCCRO_CLEAR);
+ LASSERTF(LAYOUT_INTENT_CHANGE == 9, "found %lld\n",
+ (long long)LAYOUT_INTENT_CHANGE);
+ LASSERTF(LAIF_INCOMPRESSIBLE == 1, "found %lld\n",
+ (long long)LAIF_INCOMPRESSIBLE);
/* Checks for struct hsm_action_item */
LASSERTF((int)sizeof(struct hsm_action_item) == 72, "found %lld\n",