X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flclient.h;h=8be6c5bf63845d29bbb85a958d027bd7007a2738;hb=78fc98c662e5a7d98663f318077d621448070070;hp=4072e4be95dc71e83ea3f71a7d16491b9bf65de6;hpb=e3a7c58aebafce40323db54bf6056029e5af4a70;p=fs%2Flustre-release.git diff --git a/lustre/include/lclient.h b/lustre/include/lclient.h index 4072e4b..8be6c5b 100644 --- a/lustre/include/lclient.h +++ b/lustre/include/lclient.h @@ -107,6 +107,10 @@ struct ccc_io { * True iff io is processing glimpse right now. */ int cui_glimpse; + /** + * Layout version when this IO is initialized + */ + __u32 cui_layout_gen; /** * File descriptor against which IO is done. */ @@ -404,4 +408,18 @@ int cl_get_grouplock(struct cl_object *obj, unsigned long gid, int nonblock, struct ccc_grouplock *cg); void cl_put_grouplock(struct ccc_grouplock *cg); +/** + * New interfaces to get and put lov_stripe_md from lov layer. This violates + * layering because lov_stripe_md is supposed to be a private data in lov. + * + * NB: If you find you have to use these interfaces for your new code, please + * think about it again. These interfaces may be removed in the future for + * better layering. */ +struct lov_stripe_md *lov_lsm_get(struct cl_object *clobj); +void lov_lsm_put(struct cl_object *clobj, struct lov_stripe_md *lsm); +int lov_read_and_clear_async_rc(struct cl_object *clob); + +struct lov_stripe_md *ccc_inode_lsm_get(struct inode *inode); +void ccc_inode_lsm_put(struct inode *inode, struct lov_stripe_md *lsm); + #endif /*LCLIENT_H */