From faedbc112c7549ceea92959fef259e3e78782b5b Mon Sep 17 00:00:00 2001 From: vitaly Date: Tue, 18 Nov 2008 21:40:18 +0000 Subject: [PATCH] Branch b1_8_gate b=16129 i=adilger i=green - a high priority request list is added into service; - once a lock is canceled, all the IO requests, including coming ones, under this lock, are moved into this list; - PING is also added into this list; - once a lock cancel timeout occurs, the timeout is prolonged if there is an IO rpc under this lock; - another request list is added into the export, used to speed up the rpc-lock matching. --- lustre/ptlrpc/pack_generic.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lustre/ptlrpc/pack_generic.c b/lustre/ptlrpc/pack_generic.c index c860c3a..435734f 100644 --- a/lustre/ptlrpc/pack_generic.c +++ b/lustre/ptlrpc/pack_generic.c @@ -1136,8 +1136,11 @@ void *lustre_swab_buf(struct lustre_msg *msg, int index, int min_size, void *lustre_swab_reqbuf(struct ptlrpc_request *req, int index, int min_size, void *swabber) { - if (!ptlrpc_reqbuf_need_swab(req, index)) - swabber = NULL; + if (lustre_req_swabbed(req, index)) + return lustre_msg_buf(req->rq_reqmsg, index, min_size); + + if (!lustre_req_need_swab(req)) + swabber = NULL; lustre_set_req_swabbed(req, index); return lustre_swab_buf(req->rq_reqmsg, index, min_size, swabber); @@ -1146,7 +1149,10 @@ void *lustre_swab_reqbuf(struct ptlrpc_request *req, int index, int min_size, void *lustre_swab_repbuf(struct ptlrpc_request *req, int index, int min_size, void *swabber) { - if (!ptlrpc_repbuf_need_swab(req, index)) + if (lustre_rep_swabbed(req, index)) + return lustre_msg_buf(req->rq_repmsg, index, min_size); + + if (!lustre_rep_need_swab(req)) swabber = NULL; lustre_set_rep_swabbed(req, index); -- 1.8.3.1