X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Finclude%2Fobd.h;h=5d1fe3b9e510163bc6981db961b8ba7262eb921e;hp=e86e1531771270d1253075ed7ee8a8d1a815cefe;hb=54ce66650db543b32d05cd597ff06ae6e4af2171;hpb=0b295cfe02f02b165d877d202944886e89a87ebd diff --git a/lustre/include/obd.h b/lustre/include/obd.h index e86e153..5d1fe3b 100644 --- a/lustre/include/obd.h +++ b/lustre/include/obd.h @@ -523,12 +523,19 @@ struct mds_obd { struct obd_export *mds_osc_exp; /* XXX lov_exp */ struct lov_desc mds_lov_desc; __u32 mds_id; - obd_id *mds_lov_objids; - int mds_lov_objids_size; - __u32 mds_lov_objids_in_file; + unsigned int mds_lov_objids_dirty:1; - int mds_lov_nextid_set; struct file *mds_lov_objid_filp; + /* protect update vs free in lov_add_target */ + struct rw_semaphore mds_lov_objids_sem; + /* protect update vs update or memmove vs update */ + spinlock_t mds_lov_objids_lock; + /* wait for safe free */ + cfs_waitq_t mds_lov_objids_wait; + obd_id *mds_lov_objids; + __u32 mds_lov_objids_count; + int mds_lov_nextid_set; + struct file *mds_health_check_filp; unsigned long *mds_client_bitmap; // struct upcall_cache *mds_group_hash; @@ -552,6 +559,8 @@ struct mds_obd { struct lustre_capa_key *mds_capa_keys; }; +#define mds_lov_objids_size(mds) ((mds)->mds_lov_objids_count*sizeof(obd_id)) + struct echo_obd { struct obdo eo_oa; spinlock_t eo_lock;