* 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/
#include <obd_support.h>
#include <lustre_fid.h>
#include <lustre_fld.h>
-#include <md_object.h>
#include <lustre_req_layout.h>
#include <lprocfs_status.h>
#include "fld_internal.h"
if (lsra->lsra_lsr[i].lsr_index != index)
GOTO(out, rc = -EINVAL);
+ mutex_lock(&fld->lsf_lock);
rc1 = fld_insert_entry(env, fld, &lsra->lsra_lsr[i]);
+ mutex_unlock(&fld->lsf_lock);
+
if (rc1 != 0)
GOTO(out, rc = rc1);
}
* Lookup sequece in local cache/fldb.
**/
int fld_local_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)
{
struct lu_seq_range *erange;
struct fld_thread_info *info;
* cache fld entries, but this cache is not persistent.
*/
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)
{
__u32 index;
int rc;
if (index == 0 && rc == LDD_F_SV_TYPE_MDT) {
/* On server side, all entries should be in cache.
* If we can not find it in cache, just return error */
- CERROR("%s: Cannot find sequence "LPX64": rc = %d\n",
+ CERROR("%s: Cannot find sequence %#llx: rc = %d\n",
fld->lsf_name, seq, -ENOENT);
RETURN(-ENOENT);
} else {
if (fld->lsf_control_exp == NULL) {
- CERROR("%s: lookup "LPX64", but not connects to MDT0"
+ CERROR("%s: lookup %#llx, but not connects to MDT0"
"yet: rc = %d.\n", fld->lsf_name, seq, -EIO);
RETURN(-EIO);
}
RETURN(err_serious(-EPROTO));
req_capsule_set_size(tsi->tsi_pill, &RMF_GENERIC_DATA, RCL_SERVER,
- PAGE_CACHE_SIZE);
+ PAGE_SIZE);
rc = req_capsule_server_pack(tsi->tsi_pill);
if (unlikely(rc != 0))
data = req_capsule_server_get(tsi->tsi_pill, &RMF_GENERIC_DATA);
rc = fld_server_read(tsi->tsi_env, lu_site2seq(site)->ss_server_fld,
- in, data, PAGE_CACHE_SIZE);
+ in, data, PAGE_SIZE);
RETURN(rc);
}
}
return result;
}
-EXPORT_SYMBOL(fid_is_local);
static void fld_server_proc_fini(struct lu_server_fld *fld);
-#ifdef LPROCFS
+#ifdef CONFIG_PROC_FS
static int fld_server_proc_init(struct lu_server_fld *fld)
{
int rc = 0;
ENTRY;
- fld->lsf_proc_dir = lprocfs_seq_register(fld->lsf_name,
- fld_type_proc_dir,
- fld_server_proc_list, fld);
+ fld->lsf_proc_dir = lprocfs_register(fld->lsf_name, fld_type_proc_dir,
+ fld_server_proc_list, fld);
if (IS_ERR(fld->lsf_proc_dir)) {
rc = PTR_ERR(fld->lsf_proc_dir);
RETURN(rc);
GOTO(out_index, rc);
fld->lsf_control_exp = NULL;
+ fld->lsf_seq_lookup = fld_server_lookup;
+ fld->lsf_seq_lookup = fld_server_lookup;
RETURN(0);
out_index:
fld_index_fini(env, fld);