#define OBD_CONNECT2_ENCRYPT_FID2PATH 0x40000000ULL /* fid2path enc file */
/* For MDS+OSS rolling upgrade interop with 2.16+older, ignored after 2.20.53 */
#define OBD_CONNECT2_REPLAY_CREATE 0x80000000ULL /* replay OST_CREATE */
+#define OBD_CONNECT2_LARGE_NID 0x100000000ULL /* understands large/IPv6 NIDs */
+#define OBD_CONNECT2_COMPRESS 0x200000000ULL /* compressed file */
/* 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
__u16 padding0; /* READ BELOW! also fix lustre_swab_connect */
__u32 padding1; /* READ BELOW! also fix lustre_swab_connect */
__u64 ocd_connect_flags2;/* OBD_CONNECT2_* per above */
- __u64 padding3; /* READ BELOW! also fix lustre_swab_connect */
+ __u64 ocd_compr_type; /* bitmask of supported compression types */
__u64 padding4; /* READ BELOW! also fix lustre_swab_connect */
__u64 padding5; /* READ BELOW! also fix lustre_swab_connect */
__u64 padding6; /* READ BELOW! also fix lustre_swab_connect */
"dmv_imp_inherit", /* 0x20000000 */
"encryption_fid2path", /* 0x40000000 */
"replay_create", /* 0x80000000 */
+ "large_nid", /* 0x100000000 */
+ "compressed_file", /* 0x200000000 */
NULL
};
__swab16s(&ocd->ocd_maxmodrpcs);
BUILD_BUG_ON(offsetof(typeof(*ocd), padding0) == 0);
BUILD_BUG_ON(offsetof(typeof(*ocd), padding1) == 0);
- if (ocd->ocd_connect_flags & OBD_CONNECT_FLAGS2)
+ if (ocd->ocd_connect_flags & OBD_CONNECT_FLAGS2) {
__swab64s(&ocd->ocd_connect_flags2);
- BUILD_BUG_ON(offsetof(typeof(*ocd), padding3) == 0);
+ if (ocd->ocd_connect_flags2 & OBD_CONNECT2_COMPRESS)
+ __swab64s(&ocd->ocd_compr_type);
+ }
BUILD_BUG_ON(offsetof(typeof(*ocd), padding4) == 0);
BUILD_BUG_ON(offsetof(typeof(*ocd), padding5) == 0);
BUILD_BUG_ON(offsetof(typeof(*ocd), padding6) == 0);
(long long)(int)offsetof(struct obd_connect_data, ocd_connect_flags2));
LASSERTF((int)sizeof(((struct obd_connect_data *)0)->ocd_connect_flags2) == 8, "found %lld\n",
(long long)(int)sizeof(((struct obd_connect_data *)0)->ocd_connect_flags2));
- LASSERTF((int)offsetof(struct obd_connect_data, padding3) == 88, "found %lld\n",
- (long long)(int)offsetof(struct obd_connect_data, padding3));
- LASSERTF((int)sizeof(((struct obd_connect_data *)0)->padding3) == 8, "found %lld\n",
- (long long)(int)sizeof(((struct obd_connect_data *)0)->padding3));
+ LASSERTF((int)offsetof(struct obd_connect_data, ocd_compr_type) == 88, "found %lld\n",
+ (long long)(int)offsetof(struct obd_connect_data, ocd_compr_type));
+ LASSERTF((int)sizeof(((struct obd_connect_data *)0)->ocd_compr_type) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct obd_connect_data *)0)->ocd_compr_type));
LASSERTF((int)offsetof(struct obd_connect_data, padding4) == 96, "found %lld\n",
(long long)(int)offsetof(struct obd_connect_data, padding4));
LASSERTF((int)sizeof(((struct obd_connect_data *)0)->padding4) == 8, "found %lld\n",
OBD_CONNECT2_ENCRYPT_FID2PATH);
LASSERTF(OBD_CONNECT2_REPLAY_CREATE == 0x80000000ULL, "found 0x%.16llxULL\n",
OBD_CONNECT2_REPLAY_CREATE);
+ LASSERTF(OBD_CONNECT2_LARGE_NID == 0x100000000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_LARGE_NID);
+ LASSERTF(OBD_CONNECT2_COMPRESS == 0x200000000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_COMPRESS);
LASSERTF(OBD_CKSUM_CRC32 == 0x00000001UL, "found 0x%.8xUL\n",
(unsigned)OBD_CKSUM_CRC32);
CHECK_MEMBER(obd_connect_data, padding0);
CHECK_MEMBER(obd_connect_data, padding1);
CHECK_MEMBER(obd_connect_data, ocd_connect_flags2);
- CHECK_MEMBER(obd_connect_data, padding3);
+ CHECK_MEMBER(obd_connect_data, ocd_compr_type);
CHECK_MEMBER(obd_connect_data, padding4);
CHECK_MEMBER(obd_connect_data, padding5);
CHECK_MEMBER(obd_connect_data, padding6);
CHECK_DEFINE_64X(OBD_CONNECT2_DMV_IMP_INHERIT);
CHECK_DEFINE_64X(OBD_CONNECT2_ENCRYPT_FID2PATH);
CHECK_DEFINE_64X(OBD_CONNECT2_REPLAY_CREATE);
+ CHECK_DEFINE_64X(OBD_CONNECT2_LARGE_NID);
+ CHECK_DEFINE_64X(OBD_CONNECT2_COMPRESS);
BLANK_LINE();
CHECK_VALUE_X(OBD_CKSUM_CRC32);
(long long)(int)offsetof(struct obd_connect_data, ocd_connect_flags2));
LASSERTF((int)sizeof(((struct obd_connect_data *)0)->ocd_connect_flags2) == 8, "found %lld\n",
(long long)(int)sizeof(((struct obd_connect_data *)0)->ocd_connect_flags2));
- LASSERTF((int)offsetof(struct obd_connect_data, padding3) == 88, "found %lld\n",
- (long long)(int)offsetof(struct obd_connect_data, padding3));
- LASSERTF((int)sizeof(((struct obd_connect_data *)0)->padding3) == 8, "found %lld\n",
- (long long)(int)sizeof(((struct obd_connect_data *)0)->padding3));
+ LASSERTF((int)offsetof(struct obd_connect_data, ocd_compr_type) == 88, "found %lld\n",
+ (long long)(int)offsetof(struct obd_connect_data, ocd_compr_type));
+ LASSERTF((int)sizeof(((struct obd_connect_data *)0)->ocd_compr_type) == 8, "found %lld\n",
+ (long long)(int)sizeof(((struct obd_connect_data *)0)->ocd_compr_type));
LASSERTF((int)offsetof(struct obd_connect_data, padding4) == 96, "found %lld\n",
(long long)(int)offsetof(struct obd_connect_data, padding4));
LASSERTF((int)sizeof(((struct obd_connect_data *)0)->padding4) == 8, "found %lld\n",
OBD_CONNECT2_ENCRYPT_FID2PATH);
LASSERTF(OBD_CONNECT2_REPLAY_CREATE == 0x80000000ULL, "found 0x%.16llxULL\n",
OBD_CONNECT2_REPLAY_CREATE);
+ LASSERTF(OBD_CONNECT2_LARGE_NID == 0x100000000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_LARGE_NID);
+ LASSERTF(OBD_CONNECT2_COMPRESS == 0x200000000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_COMPRESS);
LASSERTF(OBD_CKSUM_CRC32 == 0x00000001UL, "found 0x%.8xUL\n",
(unsigned)OBD_CKSUM_CRC32);