/* without gss, ptlrpc_body is put at the first buffer. */
#define PTLRPC_NUM_VERSIONS 4
+#define JOBSTATS_JOBID_SIZE 32 /* 32 bytes string */
struct ptlrpc_body {
struct lustre_handle pb_handle;
__u32 pb_type;
__u64 pb_pre_versions[PTLRPC_NUM_VERSIONS];
/* padding for future needs */
__u64 pb_padding[4];
+ /*char pb_jobid[JOBSTATS_JOBID_SIZE]; LU-694 */
};
extern void lustre_swab_ptlrpc_body(struct ptlrpc_body *pb, int msgsize);
#define OBD_CONNECT_64BITHASH 0x4000000000ULL /* client supports 64-bits
* directory hash */
#define OBD_CONNECT_MAXBYTES 0x8000000000ULL /* max stripe size */
+#define OBD_CONNECT_IMP_RECOV 0x10000000000ULL /* imp recovery support */
+#define OBD_CONNECT_JOBSTATS 0x20000000000ULL /* jobid in ptlrpc_body */
/* also update obd_connect_names[] for lprocfs_rd_connect_flags()
* and lustre/utils/wirecheck.c */
__u32 ocd_group; /* Used in lustre 1.8 */
__u32 ocd_cksum_types; /* supported checksum algorithms */
__u32 ocd_max_easize; /* How big LOV EA size can be on MDS */
- __u32 padding; /* also fix lustre_swab_connect */
+ __u32 ocd_instance; /* IR instance # of this target */
__u64 ocd_maxbytes; /* Maximum object size in bytes */
};
LASSERT(count > 0);
#ifdef PTLRPC_INTEROP_1_6
- LASSERT(lens[MSG_PTLRPC_BODY_OFF] == sizeof(struct ptlrpc_body) ||
+ LASSERT(lens[MSG_PTLRPC_BODY_OFF] >= sizeof(struct ptlrpc_body) ||
lens[MSG_PTLRPC_BODY_OFF] == PTLRPC_BODY_MIN_SIZE);
#else
- LASSERT(lens[MSG_PTLRPC_BODY_OFF] == sizeof(struct ptlrpc_body));
+ LASSERT(lens[MSG_PTLRPC_BODY_OFF] >= sizeof(struct ptlrpc_body));
#endif
switch (magic) {
case LUSTRE_MSG_MAGIC_V1:
__swab32s(&ocd->ocd_group);
__swab32s(&ocd->ocd_cksum_types);
__swab32s(&ocd->ocd_max_easize);
+ __swab32s(&ocd->ocd_instance);
__swab64s(&ocd->ocd_maxbytes);
- CLASSERT(offsetof(typeof(*ocd), padding) != 0);
}
void lustre_swab_obdo (struct obdo *o)
(long long)(int)offsetof(struct obd_connect_data, ocd_max_easize));
LASSERTF((int)sizeof(((struct obd_connect_data *)0)->ocd_max_easize) == 4, " found %lld\n",
(long long)(int)sizeof(((struct obd_connect_data *)0)->ocd_max_easize));
- LASSERTF((int)offsetof(struct obd_connect_data, padding) == 60, " found %lld\n",
- (long long)(int)offsetof(struct obd_connect_data, padding));
- LASSERTF((int)sizeof(((struct obd_connect_data *)0)->padding) == 4, " found %lld\n",
- (long long)(int)sizeof(((struct obd_connect_data *)0)->padding));
+ LASSERTF((int)offsetof(struct obd_connect_data, ocd_instance) == 60, " found %lld\n",
+ (long long)(int)offsetof(struct obd_connect_data, ocd_instance));
+ LASSERTF((int)sizeof(((struct obd_connect_data *)0)->ocd_instance) == 4, " found %lld\n",
+ (long long)(int)sizeof(((struct obd_connect_data *)0)->ocd_instance));
LASSERTF((int)offsetof(struct obd_connect_data, ocd_maxbytes) == 64, " found %lld\n",
(long long)(int)offsetof(struct obd_connect_data, ocd_maxbytes));
LASSERTF((int)sizeof(((struct obd_connect_data *)0)->ocd_maxbytes) == 8, " found %lld\n",
CHECK_MEMBER(obd_connect_data, ocd_group);
CHECK_MEMBER(obd_connect_data, ocd_cksum_types);
CHECK_MEMBER(obd_connect_data, ocd_max_easize);
- CHECK_MEMBER(obd_connect_data, padding1);
- CHECK_MEMBER(obd_connect_data, padding2);
+ CHECK_MEMBER(obd_connect_data, ocd_instance);
+ CHECK_MEMBER(obd_connect_data, ocd_maxbytes);
CHECK_CDEFINE(OBD_CONNECT_RDONLY);
CHECK_CDEFINE(OBD_CONNECT_INDEX);
(long long)(int)offsetof(struct obd_connect_data, ocd_max_easize));
LASSERTF((int)sizeof(((struct obd_connect_data *)0)->ocd_max_easize) == 4, " found %lld\n",
(long long)(int)sizeof(((struct obd_connect_data *)0)->ocd_max_easize));
- LASSERTF((int)offsetof(struct obd_connect_data, padding) == 60, " found %lld\n",
- (long long)(int)offsetof(struct obd_connect_data, padding));
- LASSERTF((int)sizeof(((struct obd_connect_data *)0)->padding) == 4, " found %lld\n",
- (long long)(int)sizeof(((struct obd_connect_data *)0)->padding));
+ LASSERTF((int)offsetof(struct obd_connect_data, ocd_instance) == 60, " found %lld\n",
+ (long long)(int)offsetof(struct obd_connect_data, ocd_instance));
+ LASSERTF((int)sizeof(((struct obd_connect_data *)0)->ocd_instance) == 4, " found %lld\n",
+ (long long)(int)sizeof(((struct obd_connect_data *)0)->ocd_instance));
LASSERTF((int)offsetof(struct obd_connect_data, ocd_maxbytes) == 64, " found %lld\n",
(long long)(int)offsetof(struct obd_connect_data, ocd_maxbytes));
LASSERTF((int)sizeof(((struct obd_connect_data *)0)->ocd_maxbytes) == 8, " found %lld\n",