Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
- zero out used locks in MDT before finishing req handling;
[fs/lustre-release.git]
/
lustre
/
fld
/
fld_handler.c
diff --git
a/lustre/fld/fld_handler.c
b/lustre/fld/fld_handler.c
index
3dd1803
..
375982c
100644
(file)
--- a/
lustre/fld/fld_handler.c
+++ b/
lustre/fld/fld_handler.c
@@
-85,13
+85,13
@@
static int __init fld_mod_init(void)
{
printk(KERN_INFO "Lustre: Fid Location Database; "
"info@clusterfs.com\n");
-
+
fld_type_proc_dir = lprocfs_register(LUSTRE_FLD_NAME,
proc_lustre_root,
NULL, NULL);
if (IS_ERR(fld_type_proc_dir))
return PTR_ERR(fld_type_proc_dir);
-
+
lu_context_key_register(&fld_thread_key);
return 0;
}
@@
-107,33
+107,33
@@
static void __exit fld_mod_exit(void)
/* insert index entry and update cache */
int fld_server_create(struct lu_server_fld *fld,
- const struct lu_
context *ctx
,
+ const struct lu_
env *env
,
seqno_t seq, mdsno_t mds)
{
- return fld_index_create(fld,
ctx
, seq, mds);
+ return fld_index_create(fld,
env
, seq, mds);
}
EXPORT_SYMBOL(fld_server_create);
/* delete index entry */
int fld_server_delete(struct lu_server_fld *fld,
- const struct lu_
context *ctx
,
+ const struct lu_
env *env
,
seqno_t seq)
{
- return fld_index_delete(fld,
ctx
, seq);
+ return fld_index_delete(fld,
env
, seq);
}
EXPORT_SYMBOL(fld_server_delete);
/* issue on-disk index lookup */
int fld_server_lookup(struct lu_server_fld *fld,
- const struct lu_
context *ctx
,
+ const struct lu_
env *env
,
seqno_t seq, mdsno_t *mds)
{
- return fld_index_lookup(fld,
ctx
, seq, mds);
+ return fld_index_lookup(fld,
env
, seq, mds);
}
EXPORT_SYMBOL(fld_server_lookup);
static int fld_server_handle(struct lu_server_fld *fld,
- const struct lu_
context *ctx
,
+ const struct lu_
env *env
,
__u32 opc, struct md_fld *mf,
struct fld_thread_info *info)
{
@@
-142,7
+142,7
@@
static int fld_server_handle(struct lu_server_fld *fld,
switch (opc) {
case FLD_CREATE:
- rc = fld_server_create(fld,
ctx
,
+ rc = fld_server_create(fld,
env
,
mf->mf_seq, mf->mf_mds);
/* do not return -EEXIST error for resent case */
@@
-150,20
+150,25
@@
static int fld_server_handle(struct lu_server_fld *fld,
rc = 0;
break;
case FLD_DELETE:
- rc = fld_server_delete(fld,
ctx
, mf->mf_seq);
+ rc = fld_server_delete(fld,
env
, mf->mf_seq);
/* do not return -ENOENT error for resent case */
if ((info->fti_flags & MSG_RESENT) && rc == -ENOENT)
rc = 0;
break;
case FLD_LOOKUP:
- rc = fld_server_lookup(fld,
ctx
,
+ rc = fld_server_lookup(fld,
env
,
mf->mf_seq, &mf->mf_mds);
break;
default:
rc = -EINVAL;
break;
}
+ if (rc) {
+ CERROR("%s: FLD req (opc: %d, seq: "LPX64", mds: "
+ LPU64") handle error %d\n", fld->lsf_name,
+ opc, mf->mf_seq, mf->mf_mds, rc);
+ }
RETURN(rc);
}
@@
-174,31
+179,31
@@
static int fld_req_handle(struct ptlrpc_request *req,
struct lu_site *site;
struct md_fld *in;
struct md_fld *out;
- int rc
= -EPROTO
;
+ int rc;
__u32 *opc;
ENTRY;
site = req->rq_export->exp_obd->obd_lu_dev->ld_site;
-
+
rc = req_capsule_pack(&info->fti_pill);
if (rc)
- RETURN(
rc
);
+ RETURN(
err_serious(rc)
);
opc = req_capsule_client_get(&info->fti_pill, &RMF_FLD_OPC);
if (opc != NULL) {
in = req_capsule_client_get(&info->fti_pill, &RMF_FLD_MDFLD);
if (in == NULL)
- RETURN(
-EPROTO
);
+ RETURN(
err_serious(-EPROTO)
);
out = req_capsule_server_get(&info->fti_pill, &RMF_FLD_MDFLD);
if (out == NULL)
- RETURN(
-EPROTO
);
+ RETURN(
err_serious(-EPROTO)
);
*out = *in;
rc = fld_server_handle(site->ls_server_fld,
- req->rq_svc_thread->t_
ctx
,
+ req->rq_svc_thread->t_
env
,
*opc, out, info);
} else
- rc =
-EPROTO
;
+ rc =
err_serious(-EPROTO)
;
RETURN(rc);
}
@@
-209,7
+214,7
@@
static void fld_thread_info_init(struct ptlrpc_request *req,
int i;
info->fti_flags = lustre_msg_get_flags(req->rq_reqmsg);
-
+
/* mark rep buffer as req-layout stuff expects */
for (i = 0; i < ARRAY_SIZE(info->fti_rep_buf_size); i++)
info->fti_rep_buf_size[i] = -1;
@@
-228,15
+233,14
@@
static void fld_thread_info_fini(struct fld_thread_info *info)
static int fld_handle(struct ptlrpc_request *req)
{
- const struct lu_
context *ctx
;
+ const struct lu_
env *env
;
struct fld_thread_info *info;
int rc;
-
- ctx = req->rq_svc_thread->t_ctx;
- LASSERT(ctx != NULL);
- LASSERT(ctx->lc_thread == req->rq_svc_thread);
- info = lu_context_key_get(ctx, &fld_thread_key);
+ env = req->rq_svc_thread->t_env;
+ LASSERT(env != NULL);
+
+ info = lu_context_key_get(&env->le_ctx, &fld_thread_key);
LASSERT(info != NULL);
fld_thread_info_init(req, info);
@@
-323,7
+327,7
@@
static void fld_server_proc_fini(struct lu_server_fld *fld)
#endif
int fld_server_init(struct lu_server_fld *fld, struct dt_device *dt,
- const char *prefix, const struct lu_
context *ctx
)
+ const char *prefix, const struct lu_
env *env
)
{
int rc;
ENTRY;
@@
-331,7
+335,7
@@
int fld_server_init(struct lu_server_fld *fld, struct dt_device *dt,
snprintf(fld->lsf_name, sizeof(fld->lsf_name),
"srv-%s", prefix);
- rc = fld_index_init(fld,
ctx
, dt);
+ rc = fld_index_init(fld,
env
, dt);
if (rc)
GOTO(out, rc);
@@
-342,19
+346,19
@@
int fld_server_init(struct lu_server_fld *fld, struct dt_device *dt,
EXIT;
out:
if (rc)
- fld_server_fini(fld,
ctx
);
+ fld_server_fini(fld,
env
);
return rc;
}
EXPORT_SYMBOL(fld_server_init);
void fld_server_fini(struct lu_server_fld *fld,
- const struct lu_
context *ctx
)
+ const struct lu_
env *env
)
{
ENTRY;
fld_server_proc_fini(fld);
- fld_index_fini(fld,
ctx
);
-
+ fld_index_fini(fld,
env
);
+
EXIT;
}
EXPORT_SYMBOL(fld_server_fini);