return !!(exp_connect_flags2(exp) & OBD_CONNECT2_FLR);
}
+static inline int exp_connect_parity(struct obd_export *exp)
+{
+ return !!(exp_connect_flags2(exp) & OBD_CONNECT2_FLR_EC);
+}
+
static inline int exp_connect_lock_convert(struct obd_export *exp)
{
return !!(exp_connect_flags2(exp) & OBD_CONNECT2_LOCK_CONVERT);
#define OBD_CONNECT2_MIRROR_ID_FIX 0x2000000000ULL /* rr_mirror_id move */
#define OBD_CONNECT2_UPDATE_LAYOUT 0x4000000000ULL /* update compressibility */
#define OBD_CONNECT2_READDIR_OPEN 0x8000000000ULL /* read first dir page on open */
-
+#define OBD_CONNECT2_FLR_EC 0x10000000000ULL /* parity support */
/* 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
#define lov_ost_data lov_ost_data_v1
struct lov_ost_data_v1 { /* per-stripe data structure (little-endian)*/
struct ost_id l_ost_oi; /* OST object ID */
- __u32 l_ost_gen; /* generation of this l_ost_idx */
+ union {
+ __u32 l_ost_type; /* type of data stored in OST object */
+ __u32 l_ost_gen; /* generation of this l_ost_idx */
+ };
__u32 l_ost_idx; /* OST index in LOV (lov_tgt_desc->tgts) */
};
#define lov_user_ost_data lov_user_ost_data_v1
struct lov_user_ost_data_v1 { /* per-stripe data structure */
struct ost_id l_ost_oi; /* OST object ID */
- __u32 l_ost_gen; /* generation of this OST index */
+ union {
+ __u32 l_ost_type; /* type of data stored in OST object */
+ __u32 l_ost_gen; /* generation of this OST index */
+ };
__u32 l_ost_idx; /* OST index in LOV */
} __attribute__((packed));
"mirror_id_fix", /* 0x2000000000 */
"update_layout", /* 0x4000000000 */
"readdir_open", /* 0x8000000000 */
+ "flr_ec", /* 0x1000000000 */
NULL
};
OBD_CONNECT2_MIRROR_ID_FIX);
LASSERTF(OBD_CONNECT2_UPDATE_LAYOUT == 0x4000000000ULL, "found 0x%.16llxULL\n",
OBD_CONNECT2_UPDATE_LAYOUT);
+ LASSERTF(OBD_CONNECT2_FLR_EC == 0x10000000000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_FLR_EC);
LASSERTF(OBD_CKSUM_CRC32 == 0x00000001UL, "found 0x%.8xUL\n",
(unsigned)OBD_CKSUM_CRC32);
CHECK_DEFINE_64X(OBD_CONNECT2_SPARSE);
CHECK_DEFINE_64X(OBD_CONNECT2_MIRROR_ID_FIX);
CHECK_DEFINE_64X(OBD_CONNECT2_UPDATE_LAYOUT);
+ CHECK_DEFINE_64X(OBD_CONNECT2_FLR_EC);
BLANK_LINE();
CHECK_VALUE_X(OBD_CKSUM_CRC32);
OBD_CONNECT2_MIRROR_ID_FIX);
LASSERTF(OBD_CONNECT2_UPDATE_LAYOUT == 0x4000000000ULL, "found 0x%.16llxULL\n",
OBD_CONNECT2_UPDATE_LAYOUT);
+ LASSERTF(OBD_CONNECT2_FLR_EC == 0x10000000000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_FLR_EC);
LASSERTF(OBD_CKSUM_CRC32 == 0x00000001UL, "found 0x%.8xUL\n",
(unsigned)OBD_CKSUM_CRC32);