X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_fld.h;h=48856d3fddff3ce810c10b8a13325315f92557fd;hb=051ca1bc6a561f8bac65e0cfa861ff48050e8bea;hp=836ecfd36e790ebe2efbbaf0b930f48dc6b19a37;hpb=6d185ec7e0c91daf5903f8d9e03e1d5b163b7fbb;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_fld.h b/lustre/include/lustre_fld.h index 836ecfd..48856d3 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, 2012, Whamcloud, Inc. + * Copyright (c) 2011, 2013, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -43,18 +43,16 @@ */ #include -#include -#include - #include +struct lu_env; struct lu_client_fld; struct lu_server_fld; struct lu_fld_hash; struct fld_cache; - -extern const struct dt_index_features fld_index_features; -extern const char fld_index_name[]; +struct thandle; +struct dt_device; +struct dt_object; /* * FLD (Fid Location Database) interface. @@ -64,12 +62,11 @@ enum { LUSTRE_CLI_FLD_HASH_RRB }; - struct lu_fld_target { - cfs_list_t ft_chain; - struct obd_export *ft_exp; - struct lu_server_fld *ft_srv; - __u64 ft_idx; + cfs_list_t ft_chain; + struct obd_export *ft_exp; + struct lu_server_fld *ft_srv; + __u64 ft_idx; }; struct lu_server_fld { @@ -92,16 +89,12 @@ struct lu_server_fld { /** * Protect index modifications */ - cfs_mutex_t lsf_lock; + struct mutex lsf_lock; /** * Fld service name in form "fld-srv-lustre-MDTXXX" */ char lsf_name[80]; - /** - * Backend does not support range lookups, - * indexes other that 0 will be prohibited */ - int lsf_no_range_lookup; }; struct lu_client_fld { @@ -123,7 +116,7 @@ struct lu_client_fld { /** * Lock protecting exports list and fld_hash. */ - cfs_spinlock_t lcf_lock; + spinlock_t lcf_lock; /** * Client FLD cache. */ @@ -133,49 +126,32 @@ struct lu_client_fld { * Client fld proc entry name. */ char lcf_name[80]; - const struct lu_context *lcf_ctx; - - int lcf_flags; + int lcf_flags; }; -/** - * number of blocks to reserve for particular operations. Should be function of - * ... something. Stub for now. - */ -enum { - /* one insert operation can involve two delete and one insert */ - FLD_TXN_INDEX_INSERT_CREDITS = 60, - FLD_TXN_INDEX_DELETE_CREDITS = 20, -}; +/* 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); -int fld_query(struct com_thread_info *info); +void fld_server_fini(const struct lu_env *env, struct lu_server_fld *fld); -/* Server methods */ -int fld_server_init(struct lu_server_fld *fld, - struct dt_device *dt, - const char *prefix, - const struct lu_env *env, - int mds_node_id); - -void fld_server_fini(struct lu_server_fld *fld, - const struct lu_env *env); - -int fld_declare_server_create(struct lu_server_fld *fld, - const struct lu_env *env, - struct thandle *th); - -int fld_server_create(struct lu_server_fld *fld, - const struct lu_env *env, - struct lu_seq_range *add_range, - struct thandle *th); - -int fld_server_delete(struct lu_server_fld *fld, - const struct lu_env *env, - struct lu_seq_range *range); - -int fld_server_lookup(struct lu_server_fld *fld, - const struct lu_env *env, - seqno_t seq, struct lu_seq_range *range); +int fld_declare_server_create(const struct lu_env *env, + struct lu_server_fld *fld, + const struct lu_seq_range *range, + struct thandle *th); + +int fld_server_create(const struct lu_env *env, + struct lu_server_fld *fld, + const struct lu_seq_range *add_range, + struct thandle *th); + +int fld_insert_entry(const struct lu_env *env, + struct lu_server_fld *fld, + 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); /* Client methods */ int fld_client_init(struct lu_client_fld *fld,