<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
Neil,<br>
<br>
Do you have an objection to the concept, or just because this one&#8217;s not used?<br>
Having a MAX makes it easy to write things like &lt; MYENUM_MAX as sanity checking code, and then if the enum is added to, it still works.&nbsp; Seems useful to me.<br>
<br>
- Patrick<br>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> lustre-devel &lt;lustre-devel-bounces@lists.lustre.org&gt; on behalf of NeilBrown &lt;neilb@suse.com&gt;<br>
<b>Sent:</b> Tuesday, July 31, 2018 5:47:28 PM<br>
<b>To:</b> James Simmons; Andreas Dilger; Oleg Drokin<br>
<b>Cc:</b> Lustre Development List<br>
<b>Subject:</b> Re: [lustre-devel] [PATCH 25/31] lustre: config: move config types into lustre_idl.h</font>
<div>&nbsp;</div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On Mon, Jul 30 2018, James Simmons wrote:<br>
<br>
&gt; From: Niu Yawei &lt;yawei.niu@intel.com&gt;<br>
&gt;<br>
&gt; Move config type values CONFIG_T_XXX into lustre_idl.h since they<br>
&gt; will be put on wire when reading config logs.<br>
&gt;<br>
&gt; Add missing wire checks for mgs_nidtbl_entry, mgs_config_body and<br>
&gt; mgs_config_res.<br>
&gt;<br>
&gt; Redefine CONFIG_SUB_XXX for the sub clds attached on config log.<br>
&gt;<br>
&gt; Signed-off-by: Niu Yawei &lt;yawei.niu@intel.com&gt;<br>
&gt; WC-id: <a href="https://jira.whamcloud.com/browse/LU-9216">https://jira.whamcloud.com/browse/LU-9216</a><br>
&gt; Reviewed-on: <a href="https://review.whamcloud.com/26022">https://review.whamcloud.com/26022</a><br>
&gt; Reviewed-by: Fan Yong &lt;fan.yong@intel.com&gt;<br>
&gt; Reviewed-by: John L. Hammond &lt;jhammond@whamcloud.com&gt;<br>
&gt; Reviewed-by: Oleg Drokin &lt;green@whamcloud.com&gt;<br>
&gt; Signed-off-by: James Simmons &lt;jsimmons@infradead.org&gt;<br>
&gt; ---<br>
&gt;&nbsp; .../lustre/include/uapi/linux/lustre/lustre_idl.h&nbsp; | 10 &#43;&#43;-<br>
&gt;&nbsp; drivers/staging/lustre/lustre/include/obd_class.h&nbsp; | 12 &#43;--<br>
&gt;&nbsp; drivers/staging/lustre/lustre/mgc/mgc_request.c&nbsp;&nbsp;&nbsp; |&nbsp; 6 &#43;-<br>
&gt;&nbsp; drivers/staging/lustre/lustre/ptlrpc/wiretest.c&nbsp;&nbsp;&nbsp; | 85 &#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;&#43;<br>
&gt;&nbsp; 4 files changed, 103 insertions(&#43;), 10 deletions(-)<br>
&gt;<br>
&gt; diff --git a/drivers/staging/lustre/include/uapi/linux/lustre/lustre_idl.h b/drivers/staging/lustre/include/uapi/linux/lustre/lustre_idl.h<br>
&gt; index c9b32ef..bd3b45a 100644<br>
&gt; --- a/drivers/staging/lustre/include/uapi/linux/lustre/lustre_idl.h<br>
&gt; &#43;&#43;&#43; b/drivers/staging/lustre/include/uapi/linux/lustre/lustre_idl.h<br>
&gt; @@ -2111,11 &#43;2111,19 @@ struct mgs_nidtbl_entry {<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } u;<br>
&gt;&nbsp; };<br>
&gt;&nbsp; <br>
&gt; &#43;enum {<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; CONFIG_T_CONFIG&nbsp; = 0,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; CONFIG_T_SPTLRPC = 1,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; CONFIG_T_RECOVER = 2,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; CONFIG_T_PARAMS&nbsp; = 3,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; CONFIG_T_MAX<br>
<br>
Arrrgggh.&nbsp; It's back.&nbsp; I thought we had killed CONFIG_T_MAX (which isn't<br>
a MAX).<br>
It's never used, so it'll have to go.<br>
<br>
NeilBrown<br>
<br>
<br>
&gt; &#43;};<br>
&gt; &#43;<br>
&gt;&nbsp; struct mgs_config_body {<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mcb_name[MTI_NAME_MAXLEN]; /* logname */<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; __u64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mcb_offset;&nbsp;&nbsp;&nbsp; /* next index of config log to request */<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; __u16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mcb_type;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* type of log: CONFIG_T_[CONFIG|RECOVER] */<br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; __u8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mcb_reserved;<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; __u8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mcb_nm_cur_pass;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; __u8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mcb_bits;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* bits unit size of config log */<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; __u32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mcb_units;&nbsp;&nbsp;&nbsp;&nbsp; /* # of units for bulk transfer */<br>
&gt;&nbsp; };<br>
&gt; diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h<br>
&gt; index 184da99..647cc22 100644<br>
&gt; --- a/drivers/staging/lustre/lustre/include/obd_class.h<br>
&gt; &#43;&#43;&#43; b/drivers/staging/lustre/lustre/include/obd_class.h<br>
&gt; @@ -156,16 &#43;156,16 @@ struct config_llog_instance {<br>
&gt;&nbsp; int class_config_parse_llog(const struct lu_env *env, struct llog_ctxt *ctxt,<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char *name, struct config_llog_instance *cfg);<br>
&gt;&nbsp; <br>
&gt; -#define CONFIG_T_CONFIG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIT(0)<br>
&gt; -#define CONFIG_T_SPTLRPC&nbsp;&nbsp;&nbsp;&nbsp; BIT(1)<br>
&gt; -#define CONFIG_T_RECOVER&nbsp;&nbsp;&nbsp;&nbsp; BIT(2)<br>
&gt; -#define CONFIG_T_PARAMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BIT(3)<br>
&gt; &#43;#define CONFIG_SUB_CONFIG&nbsp;&nbsp;&nbsp; BIT(0)<br>
&gt; &#43;#define CONFIG_SUB_SPTLRPC&nbsp;&nbsp; BIT(1)<br>
&gt; &#43;#define CONFIG_SUB_RECOVER&nbsp;&nbsp; BIT(2)<br>
&gt; &#43;#define CONFIG_SUB_PARAMS&nbsp;&nbsp;&nbsp; BIT(3)<br>
&gt;&nbsp; <br>
&gt;&nbsp; /* Sub clds should be attached to the config_llog_data when processing<br>
&gt;&nbsp;&nbsp; * config log for client or server target.<br>
&gt;&nbsp;&nbsp; */<br>
&gt; -#define CONFIG_SUB_CLIENT&nbsp;&nbsp;&nbsp; (CONFIG_T_SPTLRPC | CONFIG_T_RECOVER | \<br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONFIG_T_PARAMS)<br>
&gt; &#43;#define CONFIG_SUB_CLIENT&nbsp;&nbsp;&nbsp; (CONFIG_SUB_SPTLRPC | CONFIG_SUB_RECOVER | \<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONFIG_SUB_PARAMS)<br>
&gt;&nbsp; <br>
&gt;&nbsp; #define PARAMS_FILENAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;params&quot;<br>
&gt;&nbsp; #define LCTL_UPCALL&nbsp; &quot;lctl&quot;<br>
&gt; diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c<br>
&gt; index 06fcc7e..833e6a0 100644<br>
&gt; --- a/drivers/staging/lustre/lustre/mgc/mgc_request.c<br>
&gt; &#43;&#43;&#43; b/drivers/staging/lustre/lustre/mgc/mgc_request.c<br>
&gt; @@ -315,7 &#43;315,7 @@ struct config_llog_data *do_config_log_add(struct obd_device *obd,<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memcpy(seclogname, logname, ptr - logname);<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strcpy(seclogname &#43; (ptr - logname), &quot;-sptlrpc&quot;);<br>
&gt;&nbsp; <br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; if (cfg-&gt;cfg_sub_clds &amp; CONFIG_T_SPTLRPC) {<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; if (cfg-&gt;cfg_sub_clds &amp; CONFIG_SUB_SPTLRPC) {<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sptlrpc_cld = config_log_find_or_add(obd, seclogname, NULL,<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONFIG_T_SPTLRPC, cfg);<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (IS_ERR(sptlrpc_cld)) {<br>
&gt; @@ -325,7 &#43;325,7 @@ struct config_llog_data *do_config_log_add(struct obd_device *obd,<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&gt;&nbsp; <br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; if (cfg-&gt;cfg_sub_clds &amp; CONFIG_T_PARAMS) {<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; if (cfg-&gt;cfg_sub_clds &amp; CONFIG_SUB_PARAMS) {<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; params_cld = config_log_find_or_add(obd, PARAMS_FILENAME, sb,<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONFIG_T_PARAMS, cfg);<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (IS_ERR(params_cld)) {<br>
&gt; @@ -345,7 &#43;345,7 @@ struct config_llog_data *do_config_log_add(struct obd_device *obd,<br>
&gt;&nbsp; <br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LASSERT(lsi-&gt;lsi_lmd);<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!(lsi-&gt;lsi_lmd-&gt;lmd_flags &amp; LMD_FLG_NOIR) &amp;&amp;<br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cfg-&gt;cfg_sub_clds &amp; CONFIG_T_RECOVER) {<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cfg-&gt;cfg_sub_clds &amp; CONFIG_SUB_RECOVER) {<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ptr = strrchr(seclogname, '-');<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ptr) {<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *ptr = 0;<br>
&gt; diff --git a/drivers/staging/lustre/lustre/ptlrpc/wiretest.c b/drivers/staging/lustre/lustre/ptlrpc/wiretest.c<br>
&gt; index 2f081ed..09b1298 100644<br>
&gt; --- a/drivers/staging/lustre/lustre/ptlrpc/wiretest.c<br>
&gt; &#43;&#43;&#43; b/drivers/staging/lustre/lustre/ptlrpc/wiretest.c<br>
&gt; @@ -3629,6 &#43;3629,91 @@ void lustre_assert_wire_constants(void)<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_target_info *)0)-&gt;mti_params) == 4096, &quot;found %lld\n&quot;,<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_target_info *)0)-&gt;mti_params));<br>
&gt;&nbsp; <br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; /* Checks for struct mgs_nidtbl_entry */<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(struct mgs_nidtbl_entry) == 24, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(struct mgs_nidtbl_entry));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_version) == 0, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_version));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_version) == 8, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_version));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_instance) == 8, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_instance));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_instance) == 4, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_instance));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_index) == 12, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_index));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_index) == 4, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_index));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_length) == 16, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_length));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_length) == 4, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_length));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_type) == 20, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_type));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_type) == 1, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_type));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_nid_type) == 21, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_nid_type));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_nid_type) == 1, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_nid_type));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_nid_size) == 22, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_nid_size));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_nid_size) == 1, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_nid_size));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_nidtbl_entry, mne_nid_count) == 23, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_nidtbl_entry, mne_nid_count));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_nid_count) == 1, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;mne_nid_count));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_nidtbl_entry, u.nids[0]) == 24, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_nidtbl_entry, u.nids[0]));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;u.nids[0]) == 8, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_nidtbl_entry *)0)-&gt;u.nids[0]));<br>
&gt; &#43;<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; /* Checks for struct mgs_config_body */<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(struct mgs_config_body) == 80, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(struct mgs_config_body));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_config_body, mcb_name) == 0, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_config_body, mcb_name));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_name) == 64, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_name));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_config_body, mcb_offset) == 64, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_config_body, mcb_offset));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_offset) == 8, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_offset));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_config_body, mcb_type) == 72, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_config_body, mcb_type));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_type) == 2, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_type));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_config_body, mcb_nm_cur_pass) == 74, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_config_body, mcb_nm_cur_pass));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_nm_cur_pass) == 1, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_nm_cur_pass));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_config_body, mcb_bits) == 75, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_config_body, mcb_bits));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_bits) == 1, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_bits));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_config_body, mcb_units) == 76, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_config_body, mcb_units));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_units) == 4, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_config_body *)0)-&gt;mcb_units));<br>
&gt; &#43;<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; BUILD_BUG_ON(CONFIG_T_CONFIG != 0);<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; BUILD_BUG_ON(CONFIG_T_SPTLRPC != 1);<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; BUILD_BUG_ON(CONFIG_T_RECOVER != 2);<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; BUILD_BUG_ON(CONFIG_T_PARAMS != 3);<br>
&gt; &#43;<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; /* Checks for struct mgs_config_res */<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(struct mgs_config_res) == 16, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(struct mgs_config_res));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_config_res, mcr_offset) == 0, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_config_res, mcr_offset));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_config_res *)0)-&gt;mcr_offset) == 8, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_config_res *)0)-&gt;mcr_offset));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)offsetof(struct mgs_config_res, mcr_size) == 8, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)offsetof(struct mgs_config_res, mcr_size));<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(((struct mgs_config_res *)0)-&gt;mcr_size) == 8, &quot;found %lld\n&quot;,<br>
&gt; &#43;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(((struct mgs_config_res *)0)-&gt;mcr_size));<br>
&gt; &#43;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Checks for struct lustre_capa */<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LASSERTF((int)sizeof(struct lustre_capa) == 120, &quot;found %lld\n&quot;,<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (long long)(int)sizeof(struct lustre_capa));<br>
&gt; -- <br>
&gt; 1.8.3.1<br>
</div>
</span></font></div>
</body>
</html>