/* Data stored per client in the last_rcvd file. In le32 order. */
struct mds_client_data;
+struct mdt_client_data;
+struct mds_idmap_table;
+struct mdt_idmap_table;
struct mds_export_data {
struct list_head med_open_head;
__u64 med_ibits_known;
loff_t med_lr_off;
int med_lr_idx;
+ unsigned int med_rmtclient:1; /* remote client? */
+ __u32 med_nllu;
+ __u32 med_nllg;
+ struct mds_idmap_table *med_idmap;
+};
+
+struct mdt_export_data {
+ struct list_head med_open_head;
+ spinlock_t med_open_lock; /* lock med_open_head, mfd_list*/
+ struct semaphore med_mcd_lock;
+ struct mdt_client_data *med_mcd;
+ __u64 med_ibits_known;
+ loff_t med_lr_off;
+ int med_lr_idx;
+ unsigned int med_rmtclient:1; /* remote client? */
+ __u32 med_nllu;
+ __u32 med_nllg;
+ struct mdt_idmap_table *med_idmap;
};
struct osc_creator {
};
struct ldlm_export_data {
- struct list_head led_held_locks; /* protected by led_lock below */
+ struct list_head led_held_locks; /* protected by led_lock */
spinlock_t led_lock;
};
struct list_head fed_mod_list; /* files being modified */
int fed_mod_count;/* items in fed_writing list */
long fed_pending; /* bytes just being written */
+ __u32 fed_group;
struct brw_stats fed_brw_stats;
};
atomic_t exp_rpc_count;
struct obd_uuid exp_client_uuid;
struct list_head exp_obd_chain;
- struct hlist_node exp_uuid_hash; /* uuid-export hash*/
- struct hlist_node exp_nid_hash; /* nid-export hash */
/* exp_obd_chain_timed fo ping evictor, protected by obd_dev_lock */
struct list_head exp_obd_chain_timed;
struct obd_device *exp_obd;
struct obd_import *exp_imp_reverse; /* to make RPCs backwards */
struct proc_dir_entry *exp_proc;
struct lprocfs_stats *exp_ops_stats;
+ struct lprocfs_stats *exp_md_stats;
struct lprocfs_stats *exp_ldlm_stats;
struct ptlrpc_connection *exp_connection;
__u32 exp_conn_cnt;
__u64 exp_connect_flags;
int exp_flags;
unsigned int exp_failed:1,
+ exp_in_recovery:1,
exp_disconnected:1,
exp_connecting:1,
- exp_replay_needed:1,
- exp_need_sync:1, /* needs sync from connect */
+ exp_req_replay_needed:1,
+ exp_lock_replay_needed:1,
+ exp_need_sync:1,
exp_libclient:1; /* liblustre client? */
union {
struct mds_export_data eu_mds_data;
+ struct mdt_export_data eu_mdt_data;
struct filter_export_data eu_filter_data;
struct ec_export_data eu_ec_data;
} u;
};
#define exp_mds_data u.eu_mds_data
+#define exp_mdt_data u.eu_mdt_data
#define exp_lov_data u.eu_lov_data
#define exp_filter_data u.eu_filter_data
#define exp_ec_data u.eu_ec_data