Whamcloud - gitweb
LU-1904 idl: add checks for OBD_CONNECT flags
[fs/lustre-release.git] / lustre / include / uapi / linux / lustre / lustre_idl.h
index 351f97b..3de5098 100644 (file)
@@ -743,128 +743,118 @@ struct ptlrpc_body_v2 {
 #define MSG_PTLRPC_HEADER_OFF           31
 
 /* Connect flags */
-#define OBD_CONNECT_RDONLY                0x1ULL /*client has read-only access*/
-#define OBD_CONNECT_INDEX                 0x2ULL /*connect specific LOV idx */
-#define OBD_CONNECT_MDS                   0x4ULL /*connect from MDT to OST */
-#define OBD_CONNECT_GRANT                 0x8ULL /*OSC gets grant at connect */
-#define OBD_CONNECT_SRVLOCK              0x10ULL /*server takes locks for cli */
-#define OBD_CONNECT_VERSION              0x20ULL /*Lustre versions in ocd */
-#define OBD_CONNECT_REQPORTAL            0x40ULL /*Separate non-IO req portal */
-#define OBD_CONNECT_ACL                  0x80ULL /*access control lists */
-#define OBD_CONNECT_XATTR               0x100ULL /*client use extended attr */
-#define OBD_CONNECT_LARGE_ACL          0x200ULL /* more than 32 ACL entries */
-/* was OBD_CONNECT_TRUNCLOCK           0x400ULL *locks on server for punch */
+#define OBD_CONNECT_RDONLY                     0x1ULL /* client is read-only */
+#define OBD_CONNECT_INDEX                      0x2ULL /* connect to LOV idx */
+#define OBD_CONNECT_MDS                                0x4ULL /* connect MDT to OST */
+#define OBD_CONNECT_GRANT                      0x8ULL /* fetch grant connect */
+#define OBD_CONNECT_SRVLOCK                   0x10ULL /* server lock for RPC */
+#define OBD_CONNECT_VERSION                   0x20ULL /* versions in OCD */
+#define OBD_CONNECT_REQPORTAL                 0x40ULL /* non-IO portal */
+#define OBD_CONNECT_ACL                               0x80ULL /* access control list */
+#define OBD_CONNECT_XATTR                    0x100ULL /* extended attributes */
+#define OBD_CONNECT_LARGE_ACL                0x200ULL /* over 32 ACL entries */
+/* was OBD_CONNECT_TRUNCLOCK                 0x400ULL  * server locks punch */
 /* temporary reuse until 2.21.53 to indicate pre-2.15 client, see LU-15478 */
-#define OBD_CONNECT_OLD_FALLOC         0x400ULL /* missing o_valid flags */
-#define OBD_CONNECT_TRANSNO            0x800ULL /*replay sends init transno */
-#define OBD_CONNECT_IBITS             0x1000ULL /* not checked in 2.11+ */
-#define OBD_CONNECT_BARRIER           0x2000ULL /* write barrier. Resevered to
-                                                 * avoid use on client.
-                                                 */
-#define OBD_CONNECT_ATTRFID            0x4000ULL /*Server can GetAttr By Fid*/
-#define OBD_CONNECT_NODEVOH            0x8000ULL /*No open hndl on specl nodes*/
-#define OBD_CONNECT_RMT_CLIENT        0x10000ULL /* Remote client, never used
-                                                 * in production. Removed in
-                                                 * 2.9. Keep this flag to
-                                                 * avoid reusing.
-                                                 */
-#define OBD_CONNECT_RMT_CLIENT_FORCE  0x20000ULL /* Remote client by force,
-                                                 * never used in production.
-                                                 * Removed in 2.9. Keep this
-                                                 * flag to avoid reusing.
-                                                 */
-#define OBD_CONNECT_BRW_SIZE          0x40000ULL /*Max bytes per rpc */
-#define OBD_CONNECT_QUOTA64           0x80000ULL /*Not used since 2.4 */
-#define OBD_CONNECT_MDS_CAPA         0x100000ULL /*MDS capability */
-#define OBD_CONNECT_OSS_CAPA         0x200000ULL /*OSS capability */
-#define OBD_CONNECT_CANCELSET        0x400000ULL /*Early batched cancels. */
-#define OBD_CONNECT_SOM              0x800000ULL /*Size on MDS */
-#define OBD_CONNECT_AT              0x1000000ULL /*client uses AT */
-#define OBD_CONNECT_LRU_RESIZE      0x2000000ULL /*LRU resize feature. */
-#define OBD_CONNECT_MDS_MDS         0x4000000ULL /*MDS-MDS connection */
-#define OBD_CONNECT_REAL            0x8000000ULL /* obsolete since 2.8 */
-#define OBD_CONNECT_CHANGE_QS      0x10000000ULL /*Not used since 2.4 */
-#define OBD_CONNECT_CKSUM          0x20000000ULL /*support several cksum algos*/
-#define OBD_CONNECT_FID            0x40000000ULL /*FID is supported by server */
-#define OBD_CONNECT_VBR            0x80000000ULL /*version based recovery */
-#define OBD_CONNECT_LOV_V3        0x100000000ULL /*client supports LOV v3 EA */
-#define OBD_CONNECT_GRANT_SHRINK  0x200000000ULL /* support grant shrink */
-#define OBD_CONNECT_SKIP_ORPHAN   0x400000000ULL /* don't reuse orphan objids */
-#define OBD_CONNECT_MAX_EASIZE    0x800000000ULL /* preserved for large EA */
-#define OBD_CONNECT_FULL20       0x1000000000ULL /* it is 2.0 client */
-#define OBD_CONNECT_LAYOUTLOCK   0x2000000000ULL /* client uses layout lock */
-#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 */
-#define OBD_CONNECT_UMASK       0x40000000000ULL /* create uses client umask */
-#define OBD_CONNECT_EINPROGRESS 0x80000000000ULL /* client handles -EINPROGRESS
-                                                  * RPC error properly */
-#define OBD_CONNECT_GRANT_PARAM 0x100000000000ULL/* extra grant params used for
-                                                  * finer space reservation */
-#define OBD_CONNECT_FLOCK_OWNER 0x200000000000ULL /* for the fixed 1.8
-                                                  * policy and 2.x server */
-#define OBD_CONNECT_LVB_TYPE   0x400000000000ULL /* variable type of LVB */
-#define OBD_CONNECT_NANOSEC_TIME 0x800000000000ULL /* nanosecond timestamps */
-#define OBD_CONNECT_LIGHTWEIGHT 0x1000000000000ULL/* lightweight connection */
-#define OBD_CONNECT_SHORTIO     0x2000000000000ULL/* short io */
-#define OBD_CONNECT_PINGLESS   0x4000000000000ULL/* pings not required */
-#define OBD_CONNECT_FLOCK_DEAD 0x8000000000000ULL/* improved flock deadlock detection */
-#define OBD_CONNECT_DISP_STRIPE 0x10000000000000ULL/* create stripe disposition*/
-#define OBD_CONNECT_OPEN_BY_FID        0x20000000000000ULL /* open by fid won't pack
-                                                      name in request */
-#define OBD_CONNECT_LFSCK      0x40000000000000ULL/* support online LFSCK */
-#define OBD_CONNECT_UNLINK_CLOSE 0x100000000000000ULL/* close file in unlink */
-#define OBD_CONNECT_MULTIMODRPCS 0x200000000000000ULL /* support multiple modify
-                                                        RPCs in parallel */
-#define OBD_CONNECT_DIR_STRIPE  0x400000000000000ULL /* striped DNE dir */
-#define OBD_CONNECT_SUBTREE    0x800000000000000ULL /* fileset mount */
+#define OBD_CONNECT_OLD_FALLOC               0x400ULL /* no o_valid flags */
+#define OBD_CONNECT_TRANSNO                  0x800ULL /* replay send transno */
+#define OBD_CONNECT_IBITS                   0x1000ULL /* not checked 2.11+ */
+#define OBD_CONNECT_BARRIER                 0x2000ULL /* write barrier */
+#define OBD_CONNECT_ATTRFID                 0x4000ULL /* Server GetAttr FID */
+#define OBD_CONNECT_NODEVOH                 0x8000ULL /* No open handle spec */
+#define OBD_CONNECT_RMT_CLIENT             0x10000ULL /* Never used, gone 2.9*/
+#define OBD_CONNECT_RMT_CLIENT_FORCE       0x20000ULL /* Never used, gone 2.9*/
+#define OBD_CONNECT_BRW_SIZE               0x40000ULL /* Max bytes per rpc */
+#define OBD_CONNECT_QUOTA64                0x80000ULL /* Unused since 2.4 */
+#define OBD_CONNECT_MDS_CAPA              0x100000ULL /* Unused since 2.7 */
+#define OBD_CONNECT_OSS_CAPA              0x200000ULL /* Unused since 2.7 */
+#define OBD_CONNECT_CANCELSET             0x400000ULL /* Early batch cancel */
+#define OBD_CONNECT_SOM                           0x800000ULL /* Unused since 2.7 */
+#define OBD_CONNECT_AT                   0x1000000ULL /* client uses AT */
+#define OBD_CONNECT_LRU_RESIZE           0x2000000ULL /* LRU resize feature */
+#define OBD_CONNECT_MDS_MDS              0x4000000ULL /* MDS-MDS connection */
+#define OBD_CONNECT_REAL                 0x8000000ULL /* Unused since 2.8 */
+#define OBD_CONNECT_CHANGE_QS           0x10000000ULL /* Unused since 2.4 */
+#define OBD_CONNECT_CKSUM               0x20000000ULL /* cksum algo choice */
+#define OBD_CONNECT_FID                         0x40000000ULL /* server handles FIDs */
+#define OBD_CONNECT_VBR                         0x80000000ULL /* version based recov */
+#define OBD_CONNECT_LOV_V3             0x100000000ULL /* client LOV v3 EA */
+#define OBD_CONNECT_GRANT_SHRINK       0x200000000ULL /* handle grant shrink */
+#define OBD_CONNECT_SKIP_ORPHAN                0x400000000ULL /* no orph objid reuse */
+#define OBD_CONNECT_MAX_EASIZE         0x800000000ULL /* EA size in reply */
+#define OBD_CONNECT_FULL20            0x1000000000ULL /* it is 2.0 client */
+#define OBD_CONNECT_LAYOUTLOCK        0x2000000000ULL /* client layout lock */
+#define OBD_CONNECT_64BITHASH         0x4000000000ULL /* 64-bits dir hash */
+#define OBD_CONNECT_MAXBYTES          0x8000000000ULL /* max stripe size */
+#define OBD_CONNECT_IMP_RECOV        0x10000000000ULL /* imp recov support */
+#define OBD_CONNECT_JOBSTATS         0x20000000000ULL /* ptlrpc_body jobid */
+#define OBD_CONNECT_UMASK            0x40000000000ULL /* create client umask */
+#define OBD_CONNECT_EINPROGRESS              0x80000000000ULL /* client -EINPROGRESS
+                                                       * RPC error handling */
+#define OBD_CONNECT_GRANT_PARAM             0x100000000000ULL /* extra grant params for
+                                                       * space reservation */
+#define OBD_CONNECT_FLOCK_OWNER             0x200000000000ULL /* unused since 2.0 */
+#define OBD_CONNECT_LVB_TYPE        0x400000000000ULL /* variable LVB type */
+#define OBD_CONNECT_NANOSEC_TIME     0x800000000000ULL /* nanosec timestamp */
+#define OBD_CONNECT_LIGHTWEIGHT            0x1000000000000ULL /* lightweight connect */
+#define OBD_CONNECT_SHORTIO        0x2000000000000ULL /* short io */
+#define OBD_CONNECT_PINGLESS       0x4000000000000ULL /* pings not required */
+#define OBD_CONNECT_FLOCK_DEAD     0x8000000000000ULL /* flk deadlock detect */
+#define OBD_CONNECT_DISP_STRIPE           0x10000000000000ULL /* create stripe disp */
+#define OBD_CONNECT_OPEN_BY_FID           0x20000000000000ULL /* open by FID won't pack
+                                                       * name in request */
+#define OBD_CONNECT_LFSCK         0x40000000000000ULL /* allow online LFSCK */
+#define OBD_CONNECT_UNLINK_CLOSE  0x100000000000000ULL /* unlink closes file */
+#define OBD_CONNECT_MULTIMODRPCS  0x200000000000000ULL /* allow multiple change
+                                                       * RPCs in parallel */
+#define OBD_CONNECT_DIR_STRIPE   0x400000000000000ULL /* striped DNE dir */
+#define OBD_CONNECT_SUBTREE      0x800000000000000ULL /* fileset mount */
 /* was OBD_CONNECT_LOCKAHEAD_OLD 0x1000000000000000ULL old lockahead 2.12-2.13*/
-
-/** bulk matchbits is sent within ptlrpc_body */
-#define OBD_CONNECT_BULK_MBITS  0x2000000000000000ULL
+#define OBD_CONNECT_BULK_MBITS  0x2000000000000000ULL /* ptlrpc_body matchbit*/
 #define OBD_CONNECT_OBDOPACK    0x4000000000000000ULL /* compact OUT obdo */
 #define OBD_CONNECT_FLAGS2      0x8000000000000000ULL /* second flags word */
 /* ocd_connect_flags2 flags */
-#define OBD_CONNECT2_FILE_SECCTX        0x1ULL /* set file security context at create */
-#define OBD_CONNECT2_LOCKAHEAD          0x2ULL /* ladvise lockahead v2 */
-#define OBD_CONNECT2_DIR_MIGRATE        0x4ULL /* migrate striped dir */
-#define OBD_CONNECT2_SUM_STATFS                0x8ULL /* MDT return aggregated stats */
-#define OBD_CONNECT2_OVERSTRIPING      0x10ULL /* OST overstriping support */
-#define OBD_CONNECT2_FLR               0x20ULL /* FLR support */
-#define OBD_CONNECT2_WBC_INTENTS       0x40ULL /* create/unlink/... intents for wbc, also operations under client-held parent locks */
-#define OBD_CONNECT2_LOCK_CONVERT      0x80ULL /* IBITS lock convert support */
-#define OBD_CONNECT2_ARCHIVE_ID_ARRAY  0x100ULL /* store HSM archive_id in array */
-#define OBD_CONNECT2_INC_XID           0x200ULL /* Increasing xid */
-#define OBD_CONNECT2_SELINUX_POLICY    0x400ULL /* has client SELinux policy */
-#define OBD_CONNECT2_LSOM              0x800ULL /* LSOM support */
-#define OBD_CONNECT2_PCC               0x1000ULL /* Persistent Client Cache */
-#define OBD_CONNECT2_CRUSH             0x2000ULL /* crush hash striped directory */
-#define OBD_CONNECT2_ASYNC_DISCARD     0x4000ULL /* support async DoM data discard */
-#define OBD_CONNECT2_ENCRYPT           0x8000ULL /* client-to-disk encrypt */
-#define OBD_CONNECT2_FIDMAP           0x10000ULL /* FID map */
-#define OBD_CONNECT2_GETATTR_PFID      0x20000ULL /* pack parent FID in getattr */
-#define OBD_CONNECT2_LSEEK            0x40000ULL /* SEEK_HOLE/DATA RPC */
-#define OBD_CONNECT2_DOM_LVB          0x80000ULL /* pack DOM glimpse data in LVB */
-#define OBD_CONNECT2_REP_MBITS       0x100000ULL /* match reply mbits not xid*/
-#define OBD_CONNECT2_MODE_CONVERT     0x200000ULL /* LDLM mode convert */
-#define OBD_CONNECT2_BATCH_RPC        0x400000ULL /* Multi-RPC batch request */
-#define OBD_CONNECT2_PCCRO           0x800000ULL /* Read-only PCC */
-#define OBD_CONNECT2_ATOMIC_OPEN_LOCK 0x4000000ULL/* request lock on 1st open */
-#define OBD_CONNECT2_ENCRYPT_NAME     0x8000000ULL /* name encrypt */
-/* XXX README XXX:
- * Please DO NOT add flag values here before first ensuring that this same
- * flag value is not in use on some other branch.  Please clear any such
- * changes with senior engineers before starting to use a new flag.  Then,
- * submit a small patch against EVERY branch that ONLY adds the new flag,
+#define OBD_CONNECT2_FILE_SECCTX               0x1ULL /* security context */
+#define OBD_CONNECT2_LOCKAHEAD                 0x2ULL /* ladvise lockahead */
+#define OBD_CONNECT2_DIR_MIGRATE               0x4ULL /* migrate striped dir */
+#define OBD_CONNECT2_SUM_STATFS                        0x8ULL /* MDT aggregate statfs*/
+#define OBD_CONNECT2_OVERSTRIPING             0x10ULL /* OST overstriping */
+#define OBD_CONNECT2_FLR                      0x20ULL /* FLR mirror handling */
+#define OBD_CONNECT2_WBC_INTENTS              0x40ULL /* MDS wb cache intent */
+#define OBD_CONNECT2_LOCK_CONVERT             0x80ULL /* IBITS lock convert */
+#define OBD_CONNECT2_ARCHIVE_ID_ARRAY        0x100ULL /* HSM archive_id array*/
+#define OBD_CONNECT2_INC_XID                 0x200ULL /* Increasing xid */
+#define OBD_CONNECT2_SELINUX_POLICY          0x400ULL /* cli SELinux policy */
+#define OBD_CONNECT2_LSOM                    0x800ULL /* Lazy Size on MDT */
+#define OBD_CONNECT2_PCC                    0x1000ULL /* Persist Client Cache*/
+#define OBD_CONNECT2_CRUSH                  0x2000ULL /* CRUSH dir hash */
+#define OBD_CONNECT2_ASYNC_DISCARD          0x4000ULL /* async DoM discard */
+#define OBD_CONNECT2_ENCRYPT                0x8000ULL /* client disk encrypt */
+#define OBD_CONNECT2_FIDMAP                0x10000ULL /* MDT migrate FID map */
+#define OBD_CONNECT2_GETATTR_PFID          0x20000ULL /* parent FID getattr */
+#define OBD_CONNECT2_LSEEK                 0x40000ULL /* SEEK_HOLE/DATA RPC */
+#define OBD_CONNECT2_DOM_LVB               0x80000ULL /* DoM glimpse in LVB */
+#define OBD_CONNECT2_REP_MBITS            0x100000ULL /* reply mbits, not XID*/
+#define OBD_CONNECT2_MODE_CONVERT         0x200000ULL /* LDLM mode convert */
+#define OBD_CONNECT2_BATCH_RPC            0x400000ULL /* Multi-op batch RPCs */
+#define OBD_CONNECT2_PCCRO                0x800000ULL /* PCC read-only */
+#define OBD_CONNECT2_MNE_TYPE            0x1000000ULL /* mne_nid_type IPv6 */
+#define OBD_CONNECT2_LOCK_CONTENTION     0x2000000ULL /* contention detect */
+#define OBD_CONNECT2_ATOMIC_OPEN_LOCK    0x4000000ULL /* lock on first open */
+#define OBD_CONNECT2_ENCRYPT_NAME        0x8000000ULL /* name encrypt */
+/* 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
+ * to reserve the new OBD_CONNECT value for use by your feature. Then, submit
+ * a small patch against master and LTS branches that ONLY adds the new flag,
  * updates obd_connect_names[], adds the flag to check_obd_connect_data(),
  * and updates wiretests accordingly, so it can be approved and landed easily
- * to reserve the flag for future use.
+ * to reserve the flag for future use by your feature (submitted separately).
  */
 
-#define OCD_HAS_FLAG(ocd, flg)  \
-        (!!((ocd)->ocd_connect_flags & OBD_CONNECT_##flg))
+#define OCD_HAS_FLAG(ocd, flag)  \
+       (!!((ocd)->ocd_connect_flags & OBD_CONNECT_##flag))
+#define OCD_HAS_FLAG2(ocd, flag2) (OCD_HAS_FLAG(ocd, FLAGS2) && \
+        !!((ocd)->ocd_connect_flags2 & OBD_CONNECT2_##flag2))
 
 
 #ifdef HAVE_LRU_RESIZE_SUPPORT
@@ -967,46 +957,48 @@ struct obd_connect_data {
        __u32 ocd_grant;         /* initial cache grant amount (bytes) */
        __u32 ocd_index;         /* LOV index to connect to */
        __u32 ocd_brw_size;      /* Maximum BRW size in bytes */
-        __u64 ocd_ibits_known;   /* inode bits this client understands */
+       __u64 ocd_ibits_known;   /* inode bits this client understands */
        __u8  ocd_grant_blkbits; /* log2 of the backend filesystem blocksize */
        __u8  ocd_grant_inobits; /* log2 of the per-inode space consumption */
-       __u16 ocd_grant_tax_kb;  /* extent insertion overhead, in 1K blocks */
+       __u16 ocd_grant_tax_kb;  /* extent insertion overhead, in 1K blocks */
        __u32 ocd_grant_max_blks;/* maximum number of blocks per extent */
-        __u64 ocd_transno;       /* first transno from client to be replayed */
-        __u32 ocd_group;         /* MDS group on OST */
-        __u32 ocd_cksum_types;   /* supported checksum algorithms */
-        __u32 ocd_max_easize;    /* How big LOV EA can be on MDS */
-        __u32 ocd_instance;      /* instance # of this target */
-        __u64 ocd_maxbytes;      /* Maximum stripe size in bytes */
-        /* Fields after ocd_maxbytes are only accessible by the receiver
-         * if the corresponding flag in ocd_connect_flags is set. Accessing
-         * any field after ocd_maxbytes on the receiver without a valid flag
-         * may result in out-of-bound memory access and kernel oops. */
-       __u16 ocd_maxmodrpcs;    /* Maximum modify RPCs in parallel */
-       __u16 padding0;          /* added 2.1.0. also fix lustre_swab_connect */
-       __u32 padding1;          /* added 2.1.0. also fix lustre_swab_connect */
-       __u64 ocd_connect_flags2;
-        __u64 padding3;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 padding4;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 padding5;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 padding6;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 padding7;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 padding8;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 padding9;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 paddingA;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 paddingB;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 paddingC;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 paddingD;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 paddingE;          /* added 2.1.0. also fix lustre_swab_connect */
-        __u64 paddingF;          /* added 2.1.0. also fix lustre_swab_connect */
-};
-/* XXX README XXX:
- * Please DO NOT use any fields here before first ensuring that this same
- * field is not in use on some other branch.  Please clear any such changes
- * with senior engineers before starting to use a new field.  Then, submit
- * a small patch against EVERY branch that ONLY adds the new field along with
- * the matching OBD_CONNECT flag, so that can be approved and landed easily to
- * reserve the flag for future use. */
+       __u64 ocd_transno;       /* first transno from client to be replayed */
+       __u32 ocd_group;         /* MDS group on OST */
+       __u32 ocd_cksum_types;   /* supported checksum algorithms */
+       __u32 ocd_max_easize;    /* How big LOV EA can be on MDS */
+       __u32 ocd_instance;      /* instance # of this target */
+       __u64 ocd_maxbytes;      /* Maximum stripe size in bytes */
+       /* Fields after ocd_maxbytes are only accessible by the receiver
+        * if the corresponding flag in ocd_connect_flags is set. Accessing
+        * any field after ocd_maxbytes on the receiver without a valid flag
+        * may result in out-of-bound memory access and kernel oops. */
+       __u16 ocd_maxmodrpcs;    /* Maximum modify RPCs in parallel */
+       __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 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 */
+       __u64 padding7;          /* READ BELOW! also fix lustre_swab_connect */
+       __u64 padding8;          /* READ BELOW! also fix lustre_swab_connect */
+       __u64 padding9;          /* READ BELOW! also fix lustre_swab_connect */
+       __u64 paddingA;          /* READ BELOW! also fix lustre_swab_connect */
+       __u64 paddingB;          /* READ BELOW! also fix lustre_swab_connect */
+       __u64 paddingC;          /* READ BELOW! also fix lustre_swab_connect */
+       __u64 paddingD;          /* READ BELOW! also fix lustre_swab_connect */
+       __u64 paddingE;          /* READ BELOW! also fix lustre_swab_connect */
+       __u64 paddingF;          /* added 2.1.0. also fix lustre_swab_connect */
+};
+/* XXX README XXX README XXX README XXX README XXX README XXX README XXX
+ * Please DO NOT use any fields before first ensuring that this field is
+ * not in use by some other branch/patch.  Email adilger@whamcloud.com to
+ * reserve the new obd_connect_data field for use by your feature. Then, submit
+ * a small patch against master and LTS branch that ONLY adds the new field,
+ * updates lustre_swab_connect(), along with the matching OBD_CONNECT flag,
+ * and updates wiretests accordingly,so it can be approved and landed easily
+ * to reserve the field for future use by your feature (submitted separately).
+ */
 
 /*
  * Supported checksum algorithms. Up to 32 checksum types are supported.