Whamcloud - gitweb
LU-3285 merge: 'dom' branch merging
[fs/lustre-release.git] / lustre / include / uapi / linux / lustre / lustre_idl.h
index 597bc36..9635941 100644 (file)
 #define MDC_REPLY_PORTAL               10
 //#define MDC_BULK_PORTAL              11
 #define MDS_REQUEST_PORTAL             12
-//#define MDS_REPLY_PORTAL             13
+#define MDS_IO_PORTAL                  13
 #define MDS_BULK_PORTAL                14
 #define LDLM_CB_REQUEST_PORTAL         15
 #define LDLM_CB_REPLY_PORTAL           16
@@ -713,7 +713,7 @@ struct ptlrpc_body_v2 {
 #define MSG_CONNECT_RECOVERING  0x00000001
 #define MSG_CONNECT_RECONNECT   0x00000002
 #define MSG_CONNECT_REPLAYABLE  0x00000004
-//#define MSG_CONNECT_PEER        0x8
+/* #define MSG_CONNECT_PEER        0x00000008 removed 1.5 */
 #define MSG_CONNECT_LIBCLIENT   0x00000010
 #define MSG_CONNECT_INITIAL     0x00000020
 #define MSG_CONNECT_ASYNC       0x00000040
@@ -845,10 +845,12 @@ struct ptlrpc_body_v2 {
                                OBD_CONNECT_FLOCK_DEAD | \
                                OBD_CONNECT_DISP_STRIPE | OBD_CONNECT_LFSCK | \
                                OBD_CONNECT_OPEN_BY_FID | \
-                               OBD_CONNECT_DIR_STRIPE | \
-                               OBD_CONNECT_BULK_MBITS | \
+                               OBD_CONNECT_DIR_STRIPE | OBD_CONNECT_GRANT | \
+                               OBD_CONNECT_TRUNCLOCK | OBD_CONNECT_SRVLOCK | \
+                               OBD_CONNECT_BULK_MBITS | OBD_CONNECT_CKSUM | \
                                OBD_CONNECT_MULTIMODRPCS | \
                                OBD_CONNECT_SUBTREE | OBD_CONNECT_LARGE_ACL | \
+                               OBD_CONNECT_GRANT_PARAM | \
                                OBD_CONNECT_FLAGS2)
 
 #define MDT_CONNECT_SUPPORTED2 OBD_CONNECT2_FILE_SECCTX
@@ -1049,10 +1051,10 @@ enum obdo_flags {
  * those *_DEF magics are only used on server side internally, they
  * won't be put on wire or disk.
  */
-#define LOV_MAGIC_DEF          0x10000000
-#define LOV_MAGIC_V1_DEF       (LOV_MAGIC_DEF | LOV_MAGIC_V1)
-#define LOV_MAGIC_V3_DEF       (LOV_MAGIC_DEF | LOV_MAGIC_V3)
-#define LOV_MAGIC_COMP_V1_DEF  (LOV_MAGIC_DEF | LOV_MAGIC_COMP_V1)
+#define LOV_MAGIC_DEFINED              0x10000000
+#define LOV_MAGIC_V1_DEFINED           (LOV_MAGIC_DEFINED | LOV_MAGIC_V1)
+#define LOV_MAGIC_V3_DEFINED           (LOV_MAGIC_DEFINED | LOV_MAGIC_V3)
+#define LOV_MAGIC_COMP_V1_DEFINED      (LOV_MAGIC_DEFINED | LOV_MAGIC_COMP_V1)
 
 #define lov_pattern(pattern)           (pattern & ~LOV_PATTERN_F_MASK)
 #define lov_pattern_flags(pattern)     (pattern & LOV_PATTERN_F_MASK)
@@ -1168,6 +1170,7 @@ lov_mds_md_max_stripe_count(size_t buf_size, __u32 lmm_magic)
 #define OBD_MD_FLUID       (0x00000200ULL) /* user ID */
 #define OBD_MD_FLGID       (0x00000400ULL) /* group ID */
 #define OBD_MD_FLFLAGS     (0x00000800ULL) /* flags word */
+#define OBD_MD_DOM_SIZE    (0X00001000ULL) /* Data-on-MDT component size */
 #define OBD_MD_FLNLINK     (0x00002000ULL) /* link count */
 #define OBD_MD_FLGENER     (0x00004000ULL) /* generation number */
 /*#define OBD_MD_FLINLINE    (0x00008000ULL)  inline data. used until 1.6.5 */
@@ -1274,6 +1277,13 @@ struct hsm_state_set {
                               OBD_BRW_OVER_GRPQUOTA | \
                               OBD_BRW_OVER_PRJQUOTA)
 
+#define OBD_BRW_LOCAL1 0x80000000UL    /*
+                                        * osd-ldiskfs internal,
+                                        * page mapped to real block
+                                        */
+
+#define OBD_BRW_LOCALS (OBD_BRW_LOCAL1)
+
 #define OBD_OBJECT_EOF LUSTRE_EOF
 
 #define OST_MIN_PRECREATE 32
@@ -1359,6 +1369,7 @@ union lquota_id {
        struct lu_fid   qid_fid; /* FID for per-directory quota */
        __u64           qid_uid; /* user identifier */
        __u64           qid_gid; /* group identifier */
+       __u64           qid_projid; /* project identifier */
 };
 
 /* quotactl management */
@@ -1555,7 +1566,7 @@ typedef enum {
  * Do not exceed 63
  */
 
-typedef enum {
+enum mds_reint_op {
        REINT_SETATTR  = 1,
        REINT_CREATE   = 2,
        REINT_LINK     = 3,
@@ -1566,7 +1577,7 @@ typedef enum {
        REINT_RMENTRY  = 8,
        REINT_MIGRATE  = 9,
         REINT_MAX
-} mds_reint_t, mdt_reint_t;
+};
 
 /* the disposition of the intent outlines what was executed */
 #define DISP_IT_EXECD        0x00000001
@@ -1602,10 +1613,13 @@ typedef enum {
  * will grant LOOKUP_LOCK. */
 #define MDS_INODELOCK_PERM   0x000010
 #define MDS_INODELOCK_XATTR  0x000020  /* extended attributes */
+#define MDS_INODELOCK_DOM    0x000040 /* Data for data-on-mdt files */
 
-#define MDS_INODELOCK_MAXSHIFT 5
+#define MDS_INODELOCK_MAXSHIFT 6
 /* This FULL lock is useful to take on unlink sort of operations */
 #define MDS_INODELOCK_FULL ((1<<(MDS_INODELOCK_MAXSHIFT+1))-1)
+/* DOM lock shouldn't be canceled early, use this macro for ELC */
+#define MDS_INODELOCK_ELC (MDS_INODELOCK_FULL & ~MDS_INODELOCK_DOM)
 
 /* NOTE: until Lustre 1.8.7/2.1.1 the fid_ver() was packed into name[2],
  * but was moved into name[1] along with the OID to avoid consuming the
@@ -1722,9 +1736,9 @@ struct mdt_body {
        __u32   mbo_uid_h; /* high 32-bits of uid, for FUID */
        __u32   mbo_gid_h; /* high 32-bits of gid, for FUID */
        __u32   mbo_projid;
-       __u64   mbo_padding_6; /* also fix lustre_swab_mdt_body */
-       __u64   mbo_padding_7;
-       __u64   mbo_padding_8;
+       __u64   mbo_dom_size; /* size of DOM component */
+       __u64   mbo_dom_blocks; /* blocks consumed by DOM component */
+       __u64   mbo_padding_8; /* also fix lustre_swab_mdt_body */
        __u64   mbo_padding_9;
        __u64   mbo_padding_10;
 }; /* 216 */
@@ -2039,17 +2053,17 @@ struct mdt_rec_reint {
 
 /* lmv structures */
 struct lmv_desc {
-        __u32 ld_tgt_count;                /* how many MDS's */
-        __u32 ld_active_tgt_count;         /* how many active */
-        __u32 ld_default_stripe_count;     /* how many objects are used */
-       __u32 ld_pattern;                  /* default hash pattern */
-        __u64 ld_default_hash_size;
-        __u64 ld_padding_1;                /* also fix lustre_swab_lmv_desc */
-        __u32 ld_padding_2;                /* also fix lustre_swab_lmv_desc */
-        __u32 ld_qos_maxage;               /* in second */
-        __u32 ld_padding_3;                /* also fix lustre_swab_lmv_desc */
-        __u32 ld_padding_4;                /* also fix lustre_swab_lmv_desc */
-        struct obd_uuid ld_uuid;
+       __u32 ld_tgt_count;             /* how many MDS's */
+       __u32 ld_active_tgt_count;      /* how many active */
+       __u32 ld_default_stripe_count;  /* how many objects are used */
+       __u32 ld_pattern;               /* default hash pattern */
+       __u64 ld_default_hash_size;
+       __u64 ld_padding_1;             /* also fix lustre_swab_lmv_desc */
+       __u32 ld_padding_2;             /* also fix lustre_swab_lmv_desc */
+       __u32 ld_qos_maxage;            /* in second */
+       __u32 ld_padding_3;             /* also fix lustre_swab_lmv_desc */
+       __u32 ld_padding_4;             /* also fix lustre_swab_lmv_desc */
+       struct obd_uuid ld_uuid;
 };
 
 /* LMV layout EA, and it will be stored both in master and slave object */
@@ -2087,7 +2101,7 @@ struct lmv_mds_md_v1 {
 
 #define LMV_HASH_FLAG_MIGRATION        0x80000000
 
-#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 10, 56, 0)
+#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 11, 56, 0)
 /* Since lustre 2.8, this flag will not be needed, instead this DEAD
  * and orphan flags will be stored in LMA (see LMAI_ORPHAN)
  * Keep this flag just for LFSCK, because it still might meet such
@@ -2220,17 +2234,17 @@ typedef enum {
 
 /* LOV settings descriptor (should only contain static info) */
 struct lov_desc {
-        __u32 ld_tgt_count;                /* how many OBD's */
-        __u32 ld_active_tgt_count;         /* how many active */
-        __u32 ld_default_stripe_count;     /* how many objects are used */
-        __u32 ld_pattern;                  /* default PATTERN_RAID0 */
-        __u64 ld_default_stripe_size;      /* in bytes */
-        __u64 ld_default_stripe_offset;    /* in bytes */
-        __u32 ld_padding_0;                /* unused */
-        __u32 ld_qos_maxage;               /* in second */
-        __u32 ld_padding_1;                /* also fix lustre_swab_lov_desc */
-        __u32 ld_padding_2;                /* also fix lustre_swab_lov_desc */
-        struct obd_uuid ld_uuid;
+       __u32 ld_tgt_count;             /* how many OBD's */
+       __u32 ld_active_tgt_count;      /* how many active */
+       __s32 ld_default_stripe_count;  /* how many objects are used */
+       __u32 ld_pattern;               /* default PATTERN_RAID0 */
+       __u64 ld_default_stripe_size;   /* in bytes */
+       __s64 ld_default_stripe_offset; /* starting OST index */
+       __u32 ld_padding_0;             /* unused */
+       __u32 ld_qos_maxage;            /* in second */
+       __u32 ld_padding_1;             /* also fix lustre_swab_lov_desc */
+       __u32 ld_padding_2;             /* also fix lustre_swab_lov_desc */
+       struct obd_uuid ld_uuid;
 };
 
 #define ld_magic ld_active_tgt_count       /* for swabbing from llogs */
@@ -2358,6 +2372,8 @@ enum ldlm_intent_flags {
        IT_QUOTA_DQACQ = 0x00000800,
        IT_QUOTA_CONN  = 0x00001000,
        IT_SETXATTR    = 0x00002000,
+       IT_GLIMPSE     = 0x00004000,
+       IT_BRW         = 0x00008000,
 };
 
 struct ldlm_intent {