Whamcloud - gitweb
LU-10092 First phase of persistent client cache project merging
[fs/lustre-release.git] / lustre / include / obd.h
index 7f3c890..5627685 100644 (file)
@@ -87,6 +87,8 @@ typedef int (*obd_enqueue_update_f)(void *cookie, int rc);
 struct obd_info {
        /* OBD_STATFS_* flags */
        __u64                   oi_flags;
+       struct obd_device      *oi_obd;
+       struct lu_tgt_desc     *oi_tgt;
         /* statfs data specific for every OSC, if needed at all. */
         struct obd_statfs      *oi_osfs;
         /* An update callback which is called to update some data on upper
@@ -377,29 +379,10 @@ struct echo_client_obd {
        __u64                   ec_unique;
 };
 
-/* Generic subset of OSTs */
-struct ost_pool {
-        __u32              *op_array;      /* array of index of
-                                                   lov_obd->lov_tgts */
-        unsigned int        op_count;      /* number of OSTs in the array */
-        unsigned int        op_size;       /* allocated size of lp_array */
-       struct rw_semaphore op_rw_sem;     /* to protect ost_pool use */
-};
-
 /* allow statfs data caching for 1 second */
 #define OBD_STATFS_CACHE_SECONDS 1
 
-struct lov_tgt_desc {
-       struct list_head    ltd_kill;
-        struct obd_uuid     ltd_uuid;
-        struct obd_device  *ltd_obd;
-        struct obd_export  *ltd_exp;
-        __u32               ltd_gen;
-        __u32               ltd_index;   /* index in lov_obd->tgts */
-        unsigned long       ltd_active:1,/* is this target up for requests */
-                            ltd_activate:1,/* should  target be activated */
-                            ltd_reap:1;  /* should this target be deleted */
-};
+#define lov_tgt_desc lu_tgt_desc
 
 struct lov_md_tgt_desc {
        struct obd_device *lmtd_mdc;
@@ -434,14 +417,7 @@ struct lov_obd {
        struct kobject          *lov_tgts_kobj;
 };
 
-struct lmv_tgt_desc {
-       struct obd_uuid         ltd_uuid;
-       struct obd_device       *ltd_obd;
-       struct obd_export       *ltd_exp;
-       __u32                   ltd_idx;
-       struct mutex            ltd_fid_mutex;
-       unsigned long           ltd_active:1; /* target up for requests */
-};
+#define lmv_tgt_desc lu_tgt_desc
 
 struct lmv_obd {
        struct lu_client_fld    lmv_fld;
@@ -460,6 +436,9 @@ struct lmv_obd {
        struct obd_connect_data conn_data;
        struct kobject          *lmv_tgts_kobj;
        void                    *lmv_cache;
+
+       struct lu_qos           lmv_qos;
+       __u32                   lmv_qos_rr_index;
 };
 
 /* Minimum sector size is 512 */
@@ -838,6 +817,14 @@ enum md_cli_flags {
        CLI_MIGRATE     = 1 << 4,
 };
 
+enum md_op_code {
+       LUSTRE_OPC_MKDIR        = 0,
+       LUSTRE_OPC_SYMLINK      = 1,
+       LUSTRE_OPC_MKNOD        = 2,
+       LUSTRE_OPC_CREATE       = 3,
+       LUSTRE_OPC_ANY          = 5,
+};
+
 /**
  * GETXATTR is not included as only a couple of fields in the reply body
  * is filled, but not FID which is needed for common intent handling in
@@ -855,6 +842,7 @@ struct md_op_data {
        struct lu_fid           op_fid4; /* to the operation locks. */
        u32                     op_mds;  /* what mds server open will go to */
        __u32                   op_mode;
+       enum md_op_code         op_code;
        struct lustre_handle    op_open_handle;
        s64                     op_mod_time;
        const char              *op_name;
@@ -863,6 +851,7 @@ struct md_op_data {
        struct rw_semaphore     *op_mea2_sem;
        struct lmv_stripe_md    *op_mea1;
        struct lmv_stripe_md    *op_mea2;
+       struct lmv_stripe_md    *op_default_mea1;       /* default LMV */
        __u32                   op_suppgids[2];
        __u32                   op_fsuid;
        __u32                   op_fsgid;
@@ -896,9 +885,6 @@ struct md_op_data {
        void                   *op_file_secctx;
        __u32                   op_file_secctx_size;
 
-       /* default stripe offset */
-       __u32                   op_default_stripe_offset;
-
        __u32                   op_projid;
 
        /* Used by readdir */
@@ -1043,6 +1029,7 @@ struct lustre_md {
                struct lmv_stripe_md    *lmv;
                struct lmv_foreign_md   *lfm;
        };
+       struct lmv_stripe_md    *default_lmv;
 #ifdef CONFIG_FS_POSIX_ACL
        struct posix_acl        *posix_acl;
 #endif