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
Removes all traces of mds_req, mds_rep, ost_req, and ost_rep. All subsystems
[fs/lustre-release.git]
/
lustre
/
ldlm
/
ldlm_lockd.c
diff --git
a/lustre/ldlm/ldlm_lockd.c
b/lustre/ldlm/ldlm_lockd.c
index
5dd68e9
..
b2359eb
100644
(file)
--- a/
lustre/ldlm/ldlm_lockd.c
+++ b/
lustre/ldlm/ldlm_lockd.c
@@
-36,10
+36,8
@@
static int ldlm_enqueue(struct ptlrpc_request *req)
{
struct ldlm_reply *dlm_rep;
struct ldlm_request *dlm_req;
- struct lustre_msg *msg, *req_msg;
ldlm_error_t err;
- int rc;
- int bufsize = sizeof(*dlm_rep);
+ int rc, bufsize = sizeof(*dlm_rep);
rc = lustre_pack_msg(1, &bufsize, NULL, &req->rq_replen,
&req->rq_repbuf);
@@
-48,12
+46,9
@@
static int ldlm_enqueue(struct ptlrpc_request *req)
req->rq_status = -ENOMEM;
RETURN(0);
}
- msg = (struct lustre_msg *)req->rq_repbuf;
- req_msg = req->rq_req.lustre;
- dlm_rep = lustre_msg_buf(0, msg);
- dlm_req = lustre_msg_buf(0, req_msg);
-
- msg->xid = req_msg->xid;
+ req->rq_repmsg = (struct lustre_msg *)req->rq_repbuf;
+ dlm_rep = lustre_msg_buf(req->rq_repmsg, 0);
+ dlm_req = lustre_msg_buf(req->rq_reqmsg, 0);
err = ldlm_local_lock_enqueue(req->rq_obd,
dlm_req->ns_id,
@@
-65,40
+60,36
@@
static int ldlm_enqueue(struct ptlrpc_request *req)
&dlm_req->flags,
ldlm_client_callback,
ldlm_client_callback,
- lustre_msg_buf(
1, req_msg
),
- req
_
msg->buflens[1],
+ lustre_msg_buf(
req->rq_reqmsg, 1
),
+ req
->rq_req
msg->buflens[1],
&dlm_rep->lock_handle);
-
msg->status = HTON__u32(err)
;
+
req->rq_status = err
;
- /* XXX unfinished */
- return 0;
+ CERROR("local_lock_enqueue: %d\n", err);
+
+ RETURN(0);
}
static int ldlm_handle(struct obd_device *dev, struct ptlrpc_service *svc,
struct ptlrpc_request *req)
{
int rc;
- struct ptlreq_hdr *hdr;
-
ENTRY;
- hdr = (struct ptlreq_hdr *)req->rq_reqbuf;
-
- if (NTOH__u32(hdr->type) != PTL_RPC_REQUEST) {
- CERROR("lustre_ldlm: wrong packet type sent %d\n",
- NTOH__u32(hdr->type));
- rc = -EINVAL;
- GOTO(out, rc);
- }
-
rc = lustre_unpack_msg(req->rq_reqbuf, req->rq_reqlen);
- req->rq_req
hdr = (void
*)req->rq_reqbuf;
+ req->rq_req
msg = (struct lustre_msg
*)req->rq_reqbuf;
if (rc) {
CERROR("lustre_ldlm: Invalid request\n");
GOTO(out, rc);
}
- switch (req->rq_reqhdr->opc) {
+ if (req->rq_reqmsg->type != PTL_RPC_REQUEST) {
+ CERROR("lustre_ldlm: wrong packet type sent %d\n",
+ req->rq_reqmsg->type);
+ GOTO(out, rc = -EINVAL);
+ }
+
+ switch (req->rq_reqmsg->opc) {
case LDLM_ENQUEUE:
CDEBUG(D_INODE, "enqueue\n");
OBD_FAIL_RETURN(OBD_FAIL_LDLM_ENQUEUE, 0);
@@
-146,12
+137,11
@@
out:
return 0;
}
-
-
static int ldlm_iocontrol(int cmd, struct obd_conn *conn, int len, void *karg,
void *uarg)
{
struct obd_device *obddev = conn->oc_dev;
+ struct ptlrpc_client cl;
int err;
ENTRY;
@@
-165,6
+155,14
@@
static int ldlm_iocontrol(int cmd, struct obd_conn *conn, int len, void *karg,
return -EINVAL;
}
+ err = ptlrpc_connect_client(-1, "ldlm",
+ LDLM_REQUEST_PORTAL, LDLM_REPLY_PORTAL,
+ &cl);
+ if (err) {
+ CERROR("cannot create client\n");
+ RETURN(-EINVAL);
+ }
+
switch (cmd) {
case IOC_LDLM_TEST: {
err = ldlm_test(obddev);