Please don't reply to lustre-devel. Instead, comment in Bugzilla by using the
following link:
https://bugzilla.lustre.org/show_bug.cgi?id=11301
What |Removed |Added
----------------------------------------------------------------------------
Attachment #9296|review?([EMAIL PROTECTED])|review-
Flag| |
(From update of attachment 9296)
> static int reprocess_one_queue(struct ldlm_resource *res, void *closure)
>Index: lustre/ldlm/ldlm_lockd.c
>===================================================================
>RCS file: /cvsroot/cfs/lustre-core/ldlm/ldlm_lockd.c,v
>retrieving revision 1.149.2.18.2.31.16.22
>diff -u -p -r1.149.2.18.2.31.16.22 ldlm_lockd.c
>--- lustre/ldlm/ldlm_lockd.c 15 Dec 2006 22:21:56 -0000
>1.149.2.18.2.31.16.22
>+++ lustre/ldlm/ldlm_lockd.c 8 Jan 2007 13:37:28 -0000
>@@ -478,10 +478,44 @@ static int ldlm_handle_ast_error(struct
> return rc;
> }
>
>+static int ldlm_cb_interpret(struct ptlrpc_request *req, void *data, int rc)
>+{
>+ struct ldlm_cb_set_arg *arg = (struct ldlm_cb_set_arg *)data;
>+ struct ldlm_lock *lock;
>+ struct ldlm_reply *reply;
>+ ENTRY;
>+
>+ LASSERT(data != NULL);
>+
>+ ptlrpc_req_finished(req);
So you free request
>+ if (rc != 0) {
>+ reply = lustre_swab_repbuf(req, DLM_LOCKREPLY_OFF,
>+ sizeof(*reply),
>+ lustre_swab_ldlm_reply);
then access it?
Also what if there is no reply because there was transmission error?
You need to get lockhandle from request itself not from reply.
then we free request in ptlrpc_destroy_set() again.
I do not see you taking any extra references on a request, so no need to free
in in interpret callback.
_______________________________________________
Lustre-devel mailing list
[email protected]
https://mail.clusterfs.com/mailman/listinfo/lustre-devel