X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_export.h;h=72a83afc7471182828fa42a95efffa8eac9679a9;hb=577e7fc5c4e1795edddb1e9c33ec16d1b0b46f24;hp=743ce3bbe9aaffe98110ff4fc21626ec0ab5c6a2;hpb=9f463e30893138845eb571cc32426e8d1e04a9fa;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_export.h b/lustre/include/lustre_export.h index 743ce3b..72a83af 100644 --- a/lustre/include/lustre_export.h +++ b/lustre/include/lustre_export.h @@ -37,9 +37,9 @@ #ifndef __EXPORT_H #define __EXPORT_H +#include #include #include -#include #include struct mds_client_data; @@ -74,7 +74,7 @@ struct mdt_export_data { struct osc_creator { spinlock_t oscc_lock; - struct list_head oscc_list; + struct list_head oscc_wait_create_list; struct obd_device *oscc_obd; obd_id oscc_last_id;//last available pre-created object obd_id oscc_next_id;// what object id to give out next @@ -143,7 +143,17 @@ enum obd_option { struct obd_export { struct portals_handle exp_handle; atomic_t exp_refcount; - atomic_t exp_rpc_count; + /** + * Set of counters below is to track where export references are + * kept. The exp_rpc_count is used for reconnect handling also, + * the cb_count and locks_count are for debug purposes only for now. + * The sum of them should be less than exp_refcount by 3 + */ + atomic_t exp_rpc_count; /** RPC references */ + atomic_t exp_cb_count; /** Commit callback references */ + atomic_t exp_locks_count; /** Lock references */ + + atomic_t exp_replay_count; struct obd_uuid exp_client_uuid; struct list_head exp_obd_chain; struct hlist_node exp_uuid_hash; /* uuid-export hash*/