X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Fobd.h;h=8461df77b731563b351ccfaee37773e6829680be;hb=2124e07ddde7789ebf0e8ec5600f2aff31788123;hp=920a9f2619c380758b4b60f29eeb37126f4d4351;hpb=9b6b5e4798281eceb45699431bc871eda6d968c4;p=fs%2Flustre-release.git diff --git a/lustre/include/obd.h b/lustre/include/obd.h index 920a9f2..8461df7 100644 --- a/lustre/include/obd.h +++ b/lustre/include/obd.h @@ -99,17 +99,15 @@ struct obd_info { }; struct obd_type { - struct list_head typ_chain; - struct obd_ops *typ_dt_ops; - struct md_ops *typ_md_ops; + const struct obd_ops *typ_dt_ops; + const struct md_ops *typ_md_ops; struct proc_dir_entry *typ_procroot; struct dentry *typ_debugfs_entry; #ifdef HAVE_SERVER_SUPPORT bool typ_sym_filter; #endif - int typ_refcnt; + atomic_t typ_refcnt; struct lu_device_type *typ_lu; - spinlock_t obd_type_lock; struct kobject typ_kobj; }; #define typ_name typ_kobj.name @@ -137,12 +135,11 @@ struct timeout_item { #define OSC_MAX_DIRTY_MB_MAX 2048 /* arbitrary, but < MAX_LONG bytes */ #define OSC_DEFAULT_RESENDS 10 -/* possible values for fo_sync_lock_cancel */ -enum { - NEVER_SYNC_ON_CANCEL = 0, - BLOCKING_SYNC_ON_CANCEL = 1, - ALWAYS_SYNC_ON_CANCEL = 2, - NUM_SYNC_ON_CANCEL_STATES +/* possible values for lut_sync_lock_cancel */ +enum tgt_sync_lock_cancel { + SYNC_LOCK_CANCEL_NEVER = 0, + SYNC_LOCK_CANCEL_BLOCKING = 1, + SYNC_LOCK_CANCEL_ALWAYS = 2, }; /* @@ -214,7 +211,6 @@ struct client_obd { /* the grant values are protected by loi_list_lock below */ unsigned long cl_dirty_pages; /* all _dirty_ in pages */ unsigned long cl_dirty_max_pages; /* allowed w/o rpc */ - unsigned long cl_dirty_transit; /* dirty synchronous */ unsigned long cl_avail_grant; /* bytes of credit for ost */ unsigned long cl_lost_grant; /* lost credits (trunc) */ /* grant consumed for dirty pages */ @@ -395,7 +391,7 @@ struct lov_md_tgt_desc { struct lov_obd { struct lov_desc desc; struct lov_tgt_desc **lov_tgts; /* sparse array */ - struct ost_pool lov_packed; /* all OSTs in a packed + struct lu_tgt_pool lov_packed; /* all OSTs in a packed array */ struct mutex lov_lock; struct obd_connect_data lov_ocd; @@ -405,7 +401,7 @@ struct lov_obd { __u32 lov_tgt_size; /* size of tgts array */ int lov_connects; int lov_pool_count; - struct cfs_hash *lov_pools_hash_body; /* used for key access */ + struct rhashtable lov_pools_hash_body; /* used for key access */ struct list_head lov_pool_list; /* used for sequential access */ struct proc_dir_entry *lov_pool_proc_entry; enum lustre_sec_part lov_sp_me; @@ -425,25 +421,24 @@ struct lov_obd { struct lmv_obd { struct lu_client_fld lmv_fld; spinlock_t lmv_lock; - struct lmv_desc desc; - struct mutex lmv_init_mutex; int connected; int max_easize; int max_def_easize; u32 lmv_statfs_start; - u32 tgts_size; /* size of tgts array */ - struct lmv_tgt_desc **tgts; + struct lu_tgt_descs lmv_mdt_descs; struct obd_connect_data conn_data; struct kobject *lmv_tgts_kobj; void *lmv_cache; - struct lu_qos lmv_qos; __u32 lmv_qos_rr_index; }; +#define lmv_mdt_count lmv_mdt_descs.ltd_lmv_desc.ld_tgt_count +#define lmv_qos lmv_mdt_descs.ltd_qos + /* Minimum sector size is 512 */ #define MAX_GUARD_NUMBER (PAGE_SIZE / 512) @@ -592,7 +587,6 @@ struct obd_llog_group { struct llog_ctxt *olg_ctxts[LLOG_MAX_CTXTS]; wait_queue_head_t olg_waitq; spinlock_t olg_lock; - struct mutex olg_cat_processing; }; /* corresponds to one of the obd's */ @@ -633,7 +627,7 @@ struct obd_device { * protection of other bits using _bh lock */ unsigned long obd_recovery_expired:1; /* uuid-export hash body */ - struct cfs_hash *obd_uuid_hash; + struct rhashtable obd_uuid_hash; /* nid-export hash body */ struct cfs_hash *obd_nid_hash; /* nid stats body */ @@ -668,7 +662,7 @@ struct obd_device { struct list_head obd_exports_timed; time64_t obd_eviction_timer; /* for ping evictor */ - int obd_max_recoverable_clients; + atomic_t obd_max_recoverable_clients; atomic_t obd_connected_clients; int obd_stale_clients; /* this lock protects all recovery list_heads, timer and @@ -749,6 +743,13 @@ struct obd_device { struct completion obd_kobj_unregister; }; +int obd_uuid_add(struct obd_device *obd, struct obd_export *export); +void obd_uuid_del(struct obd_device *obd, struct obd_export *export); +#ifdef HAVE_SERVER_SUPPORT +struct obd_export *obd_uuid_lookup(struct obd_device *obd, + struct obd_uuid *uuid); +#endif + /* get/set_info keys */ #define KEY_ASYNC "async" #define KEY_CHANGELOG_CLEAR "changelog_clear" @@ -823,6 +824,7 @@ enum md_cli_flags { CLI_HASH64 = 1 << 2, CLI_API32 = 1 << 3, CLI_MIGRATE = 1 << 4, + CLI_DIRTY_DATA = 1 << 5, }; enum md_op_code { @@ -1038,7 +1040,7 @@ struct lustre_md { struct lmv_foreign_md *lfm; }; struct lmv_stripe_md *default_lmv; -#ifdef CONFIG_FS_POSIX_ACL +#ifdef CONFIG_LUSTRE_FS_POSIX_ACL struct posix_acl *posix_acl; #endif };