X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_fld.h;h=7bdb2fe3b8c6fe37ca44c802d9370f114b3f51d2;hb=ad21703f66c0d013d3cbd2d7f307715ef77864ff;hp=48856d3fddff3ce810c10b8a13325315f92557fd;hpb=641d2da14c3c00ae2f63d9814f9b1f4ef4040f1c;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_fld.h b/lustre/include/lustre_fld.h index 48856d3..7bdb2fe 100644 --- a/lustre/include/lustre_fld.h +++ b/lustre/include/lustre_fld.h @@ -27,7 +27,7 @@ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2011, 2013, Intel Corporation. + * Copyright (c) 2011, 2015, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -44,6 +44,7 @@ #include #include +#include struct lu_env; struct lu_client_fld; @@ -63,7 +64,7 @@ enum { }; struct lu_fld_target { - cfs_list_t ft_chain; + struct list_head ft_chain; struct obd_export *ft_exp; struct lu_server_fld *ft_srv; __u64 ft_idx; @@ -72,7 +73,7 @@ struct lu_fld_target { struct lu_server_fld { /** * Fld dir proc entry. */ - cfs_proc_dir_entry_t *lsf_proc_dir; + struct proc_dir_entry *lsf_proc_dir; /** * /fld file object device */ @@ -95,16 +96,28 @@ struct lu_server_fld { * Fld service name in form "fld-srv-lustre-MDTXXX" */ char lsf_name[80]; + int (*lsf_seq_lookup)(const struct lu_env *env, + struct lu_server_fld *fld, u64 seq, + struct lu_seq_range *range); + + /** + * Just reformatted or upgraded, and this flag is being + * used to check whether the local FLDB is needs to be + * synced with global FLDB(in MDT0), and it is only needed + * if the MDT is upgraded from < 2.6 to 2.6, i.e. when the + * local FLDB is being invited */ + unsigned int lsf_new:1; + }; struct lu_client_fld { - /** - * Client side proc entry. */ - cfs_proc_dir_entry_t *lcf_proc_dir; + /** + * Client side proc entry. */ + struct proc_dir_entry *lcf_proc_dir; - /** - * List of exports client FLD knows about. */ - cfs_list_t lcf_targets; + /** + * List of exports client FLD knows about. */ + struct list_head lcf_targets; /** * Current hash to be used to chose an export. */ @@ -125,14 +138,11 @@ struct lu_client_fld { /** * Client fld proc entry name. */ char lcf_name[80]; - - int lcf_flags; }; /* Server methods */ int fld_server_init(const struct lu_env *env, struct lu_server_fld *fld, - struct dt_device *dt, const char *prefix, int mds_node_id, - int type); + struct dt_device *dt, const char *prefix, int type); void fld_server_fini(const struct lu_env *env, struct lu_server_fld *fld); @@ -151,7 +161,13 @@ int fld_insert_entry(const struct lu_env *env, const struct lu_seq_range *range); int fld_server_lookup(const struct lu_env *env, struct lu_server_fld *fld, - seqno_t seq, struct lu_seq_range *range); + u64 seq, struct lu_seq_range *range); + +int fld_local_lookup(const struct lu_env *env, struct lu_server_fld *fld, + u64 seq, struct lu_seq_range *range); + +int fld_update_from_controller(const struct lu_env *env, + struct lu_server_fld *fld); /* Client methods */ int fld_client_init(struct lu_client_fld *fld, @@ -161,15 +177,14 @@ void fld_client_fini(struct lu_client_fld *fld); void fld_client_flush(struct lu_client_fld *fld); -int fld_client_lookup(struct lu_client_fld *fld, seqno_t seq, mdsno_t *mds, +int fld_client_lookup(struct lu_client_fld *fld, u64 seq, u32 *mds, __u32 flags, const struct lu_env *env); int fld_client_create(struct lu_client_fld *fld, struct lu_seq_range *range, const struct lu_env *env); -int fld_client_delete(struct lu_client_fld *fld, - seqno_t seq, +int fld_client_delete(struct lu_client_fld *fld, u64 seq, const struct lu_env *env); int fld_client_add_target(struct lu_client_fld *fld,