From 48e620ba43b788cb3e1b8516f2abb980d34c9f9c Mon Sep 17 00:00:00 2001 From: huanghua Date: Thu, 7 Aug 2008 03:40:31 +0000 Subject: [PATCH 1/1] Branch HEAD b=16599 i=tappro i=yury.umanets sync ptlrpc_body from 1.8 --- lustre/include/lustre/lustre_idl.h | 11 +++++++++-- lustre/ptlrpc/pack_generic.c | 5 +++++ lustre/ptlrpc/wiretest.c | 19 ++++++++++++++----- lustre/utils/wiretest.c | 18 +++++++++++++----- 4 files changed, 41 insertions(+), 12 deletions(-) diff --git a/lustre/include/lustre/lustre_idl.h b/lustre/include/lustre/lustre_idl.h index 01e6ce1..f6f0f12d 100644 --- a/lustre/include/lustre/lustre_idl.h +++ b/lustre/include/lustre/lustre_idl.h @@ -498,6 +498,7 @@ struct lustre_msg_v2 { }; /* without gss, ptlrpc_body is put at the first buffer. */ +#define PTLRPC_NUM_VERSIONS 4 struct ptlrpc_body { struct lustre_handle pb_handle; __u32 pb_type; @@ -515,6 +516,10 @@ struct ptlrpc_body { __u32 pb_service_time; /* for rep, actual service time */ __u32 pb_limit; __u64 pb_slv; + /* VBR: pre-versions */ + __u64 pb_pre_versions[PTLRPC_NUM_VERSIONS]; + /* padding for future needs */ + __u64 pb_padding[4]; }; extern void lustre_swab_ptlrpc_body(struct ptlrpc_body *pb); @@ -552,8 +557,10 @@ extern void lustre_swab_ptlrpc_body(struct ptlrpc_body *pb); * This was used in early prototypes of adaptive timeouts, and while there * shouldn't be any users of that code there also isn't a need for using this * bits. Defer usage until at least 1.10 to avoid potential conflict. */ -#define MSG_REQ_REPLAY_DONE 0x0010 -#define MSG_LOCK_REPLAY_DONE 0x0020 +#define MSG_DELAY_REPLAY 0x0010 +#define MSG_VERSION_REPLAY 0x0020 +#define MSG_REQ_REPLAY_DONE 0x0040 +#define MSG_LOCK_REPLAY_DONE 0x0080 /* * Flags for all connect opcodes (MDS_CONNECT, OST_CONNECT) diff --git a/lustre/ptlrpc/pack_generic.c b/lustre/ptlrpc/pack_generic.c index c7f4da7..b789993 100644 --- a/lustre/ptlrpc/pack_generic.c +++ b/lustre/ptlrpc/pack_generic.c @@ -1515,6 +1515,11 @@ void lustre_swab_ptlrpc_body(struct ptlrpc_body *b) __swab32s (&b->pb_service_time); __swab32s (&b->pb_limit); __swab64s (&b->pb_slv); + __swab64s (&b->pb_pre_versions[0]); + __swab64s (&b->pb_pre_versions[1]); + __swab64s (&b->pb_pre_versions[2]); + __swab64s (&b->pb_pre_versions[3]); + CLASSERT(offsetof(typeof(*b), pb_padding) != 0); } void lustre_swab_connect(struct obd_connect_data *ocd) diff --git a/lustre/ptlrpc/wiretest.c b/lustre/ptlrpc/wiretest.c index 416e937..81158c8 100644 --- a/lustre/ptlrpc/wiretest.c +++ b/lustre/ptlrpc/wiretest.c @@ -324,7 +324,7 @@ void lustre_assert_wire_constants(void) (long long)(int)sizeof(((struct lustre_msg_v2 *)0)->lm_buflens[0])); /* Checks for struct ptlrpc_body */ - LASSERTF((int)sizeof(struct ptlrpc_body) == 88, " found %lld\n", + LASSERTF((int)sizeof(struct ptlrpc_body) == 152, " found %lld\n", (long long)(int)sizeof(struct ptlrpc_body)); LASSERTF((int)offsetof(struct ptlrpc_body, pb_handle) == 0, " found %lld\n", (long long)(int)offsetof(struct ptlrpc_body, pb_handle)); @@ -382,14 +382,23 @@ void lustre_assert_wire_constants(void) (long long)(int)offsetof(struct ptlrpc_body, pb_service_time)); LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_service_time) == 4, " found %lld\n", (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_service_time)); - LASSERTF((int)offsetof(struct ptlrpc_body, pb_slv) == 80, " found %lld\n", - (long long)(int)offsetof(struct ptlrpc_body, pb_slv)); - LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_slv) == 8, " found %lld\n", - (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_slv)); LASSERTF((int)offsetof(struct ptlrpc_body, pb_limit) == 76, " found %lld\n", (long long)(int)offsetof(struct ptlrpc_body, pb_limit)); LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_limit) == 4, " found %lld\n", (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_limit)); + LASSERTF((int)offsetof(struct ptlrpc_body, pb_slv) == 80, " found %lld\n", + (long long)(int)offsetof(struct ptlrpc_body, pb_slv)); + LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_slv) == 8, " found %lld\n", + (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_slv)); + LASSERTF((int)offsetof(struct ptlrpc_body, pb_pre_versions) == 88, " found %lld\n", + (long long)(int)offsetof(struct ptlrpc_body, pb_pre_versions)); + LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_pre_versions) == 32, " found %lld\n", + (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_pre_versions)); + LASSERTF((int)offsetof(struct ptlrpc_body, pb_padding) == 120, " found %lld\n", + (long long)(int)offsetof(struct ptlrpc_body, pb_padding)); + LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_padding) == 32, " found %lld\n", + (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_padding)); + /* Checks for struct obd_connect_data */ LASSERTF((int)sizeof(struct obd_connect_data) == 72, " found %lld\n", diff --git a/lustre/utils/wiretest.c b/lustre/utils/wiretest.c index dfb3b09..2af50a2 100644 --- a/lustre/utils/wiretest.c +++ b/lustre/utils/wiretest.c @@ -322,7 +322,7 @@ void lustre_assert_wire_constants(void) (long long)(int)sizeof(((struct lustre_msg_v2 *)0)->lm_buflens[0])); /* Checks for struct ptlrpc_body */ - LASSERTF((int)sizeof(struct ptlrpc_body) == 88, " found %lld\n", + LASSERTF((int)sizeof(struct ptlrpc_body) == 152, " found %lld\n", (long long)(int)sizeof(struct ptlrpc_body)); LASSERTF((int)offsetof(struct ptlrpc_body, pb_handle) == 0, " found %lld\n", (long long)(int)offsetof(struct ptlrpc_body, pb_handle)); @@ -380,14 +380,22 @@ void lustre_assert_wire_constants(void) (long long)(int)offsetof(struct ptlrpc_body, pb_service_time)); LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_service_time) == 4, " found %lld\n", (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_service_time)); - LASSERTF((int)offsetof(struct ptlrpc_body, pb_slv) == 80, " found %lld\n", - (long long)(int)offsetof(struct ptlrpc_body, pb_slv)); - LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_slv) == 8, " found %lld\n", - (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_slv)); LASSERTF((int)offsetof(struct ptlrpc_body, pb_limit) == 76, " found %lld\n", (long long)(int)offsetof(struct ptlrpc_body, pb_limit)); LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_limit) == 4, " found %lld\n", (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_limit)); + LASSERTF((int)offsetof(struct ptlrpc_body, pb_slv) == 80, " found %lld\n", + (long long)(int)offsetof(struct ptlrpc_body, pb_slv)); + LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_slv) == 8, " found %lld\n", + (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_slv)); + LASSERTF((int)offsetof(struct ptlrpc_body, pb_pre_versions) == 88, " found %lld\n", + (long long)(int)offsetof(struct ptlrpc_body, pb_pre_versions)); + LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_pre_versions) == 32, " found %lld\n", + (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_pre_versions)); + LASSERTF((int)offsetof(struct ptlrpc_body, pb_padding) == 120, " found %lld\n", + (long long)(int)offsetof(struct ptlrpc_body, pb_padding)); + LASSERTF((int)sizeof(((struct ptlrpc_body *)0)->pb_padding) == 32, " found %lld\n", + (long long)(int)sizeof(((struct ptlrpc_body *)0)->pb_padding)); /* Checks for struct obd_connect_data */ LASSERTF((int)sizeof(struct obd_connect_data) == 72, " found %lld\n", -- 1.8.3.1