X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Finclude%2Flinux%2Flustre_export.h;h=1fc326334a5bd5d4d856934a0a2170811d2baccf;hp=38551acfb75769f43aa266dac5b68cfb917c95ec;hb=87c86d444e61e38d6454bba5700ba966dc1ac83d;hpb=ba5aa95eae72eff9fd825ac89b4db3e8b18e62b9 diff --git a/lustre/include/linux/lustre_export.h b/lustre/include/linux/lustre_export.h index 38551ac..1fc3263 100644 --- a/lustre/include/linux/lustre_export.h +++ b/lustre/include/linux/lustre_export.h @@ -10,41 +10,90 @@ #ifndef __EXPORT_H #define __EXPORT_H -#ifdef __KERNEL__ - #include #include -#include -struct lov_export_data { - struct list_head led_open_head; +struct mds_client_data; +struct mds_idmap_table; + +struct mds_export_data { + struct list_head med_open_head; + spinlock_t med_open_lock; + struct mds_client_data *med_mcd; + loff_t med_off; + int med_idx; + unsigned int med_initialized:1, + med_remote:1; + __u32 med_nllu; + __u32 med_nllg; + struct mds_idmap_table *med_idmap; +}; + +struct osc_creator { + spinlock_t oscc_lock; + struct obd_device *oscc_obd; + int oscc_flags; + obd_id oscc_next_id; + wait_queue_head_t oscc_waitq; +}; + +struct ldlm_export_data { + struct list_head led_held_locks; /* protected by namespace lock */ +}; + +struct ec_export_data { /* echo client */ + struct list_head eced_locks; +}; + +/* In-memory access to client data from OST struct */ +struct filter_client_data; +struct obd_llogs; +struct filter_export_data { + spinlock_t fed_lock; /* protects fed_open_head */ + __u32 fed_group; + struct filter_client_data *fed_fcd; + loff_t fed_lr_off; + int fed_lr_idx; + long fed_dirty; /* in bytes */ + long fed_grant; /* in bytes */ + long fed_pending; /* bytes just being written */ }; struct obd_export { - __u64 exp_cookie; - struct lustre_handle exp_impconnh; + struct portals_handle exp_handle; + atomic_t exp_refcount; + atomic_t exp_rpc_count; + struct obd_uuid exp_client_uuid; struct list_head exp_obd_chain; - struct list_head exp_conn_chain; struct obd_device *exp_obd; + struct obd_import *exp_imp_reverse; /* to make RPCs backwards */ struct ptlrpc_connection *exp_connection; - struct ldlm_export_data exp_ldlm_data; /* can this go inside u? */ + __u32 exp_conn_cnt; + struct ldlm_export_data exp_ldlm_data; + struct list_head exp_outstanding_replies; + time_t exp_last_request_time; + spinlock_t exp_lock; /* protects flags int below */ + /* ^ protects exp_outstanding_replies too */ + unsigned long exp_flags; + int exp_failed:1, + exp_req_replay_needed:1, + exp_lock_replay_needed:1, + exp_connected:1, + exp_libclient:1, /* liblustre client? */ + exp_sync:1; union { struct mds_export_data eu_mds_data; struct filter_export_data eu_filter_data; - struct lov_export_data eu_lov_data; + struct ec_export_data eu_ec_data; } u; - void *exp_data; /* device specific data */ - int exp_desclen; - char *exp_desc; - obd_uuid_t exp_uuid; }; #define exp_mds_data u.eu_mds_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 extern struct obd_export *class_conn2export(struct lustre_handle *conn); extern struct obd_device *class_conn2obd(struct lustre_handle *conn); -#endif /* __KERNEL__ */ #endif /* __EXPORT_H */