X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Finclude%2Flu_object.h;h=60b8ea6d6b70c2b6b3a07b01c5b63ae380bc1ac4;hp=4e035cd2952a0970bdd584e497282f6c28f382c7;hb=e27a7ff8f337984a4e7f8d31e419528b71c3777b;hpb=c70afdcb058adebfd517540e72185403a09a126b;ds=sidebyside diff --git a/lustre/include/lu_object.h b/lustre/include/lu_object.h index 4e035cd..60b8ea6 100644 --- a/lustre/include/lu_object.h +++ b/lustre/include/lu_object.h @@ -293,6 +293,10 @@ struct lu_device { * A list of references to this object, for debugging. */ struct lu_ref ld_reference; + /** + * Link the device to the site. + **/ + cfs_list_t ld_linkage; }; struct lu_device_type_operations; @@ -631,6 +635,13 @@ struct lu_site { */ cfs_list_t ls_linkage; /** + * List for lu device for this site, protected + * by ls_ld_lock. + **/ + cfs_list_t ls_ld_linkage; + cfs_spinlock_t ls_ld_lock; + + /** * lu_site stats */ struct lprocfs_stats *ls_stats; @@ -1236,6 +1247,14 @@ void lu_context_key_degister_many(struct lu_context_key *k, ...); void lu_context_key_revive_many (struct lu_context_key *k, ...); void lu_context_key_quiesce_many (struct lu_context_key *k, ...); +/* + * update/clear ctx/ses tags. + */ +void lu_context_tags_update(__u32 tags); +void lu_context_tags_clear(__u32 tags); +void lu_session_tags_update(__u32 tags); +void lu_session_tags_clear(__u32 tags); + /** * Environment. */ @@ -1253,6 +1272,7 @@ struct lu_env { int lu_env_init (struct lu_env *env, __u32 tags); void lu_env_fini (struct lu_env *env); int lu_env_refill(struct lu_env *env); +int lu_env_refill_by_tags(struct lu_env *env, __u32 ctags, __u32 stags); /** @} lu_context */