From 70cc1c946f82dbba8a40165253f867c72e15da11 Mon Sep 17 00:00:00 2001 From: huanghua Date: Thu, 29 Jan 2009 08:34:57 +0000 Subject: [PATCH] Branch b1_8 b=18318 i=rahul i=pravin reserve larger reply buffer for close and unlink: 2.0 mds wire protocol returns capabilities. --- lustre/mdc/mdc_reint.c | 6 ++++-- lustre/mdc/mdc_request.c | 10 ++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lustre/mdc/mdc_reint.c b/lustre/mdc/mdc_reint.c index 1f1f445..8eadea5 100644 --- a/lustre/mdc/mdc_reint.c +++ b/lustre/mdc/mdc_reint.c @@ -277,7 +277,7 @@ int mdc_unlink(struct obd_export *exp, struct mdc_op_data *op_data, CFS_LIST_HEAD(cancels); struct obd_device *obd = class_exp2obd(exp); struct ptlrpc_request *req = *request; - __u32 size[5] = { [MSG_PTLRPC_BODY_OFF] = sizeof(struct ptlrpc_body), + __u32 size[6] = { [MSG_PTLRPC_BODY_OFF] = sizeof(struct ptlrpc_body), [REQ_REC_OFF] = sizeof(struct mds_rec_unlink), [REQ_REC_OFF + 1] = op_data->namelen + 1, [REQ_REC_OFF + 2] = sizeof(struct ldlm_request) }; @@ -312,7 +312,9 @@ int mdc_unlink(struct obd_export *exp, struct mdc_op_data *op_data, size[REPLY_REC_OFF] = sizeof(struct mdt_body); size[REPLY_REC_OFF + 1] = obd->u.cli.cl_max_mds_easize; size[REPLY_REC_OFF + 2] = obd->u.cli.cl_max_mds_cookiesize; - ptlrpc_req_set_repsize(req, 4, size); + size[REPLY_REC_OFF + 3] = sizeof(struct lustre_capa); + size[REPLY_REC_OFF + 4] = sizeof(struct lustre_capa); + ptlrpc_req_set_repsize(req, 6, size); mdc_unlink_pack(req, REQ_REC_OFF, op_data); diff --git a/lustre/mdc/mdc_request.c b/lustre/mdc/mdc_request.c index 34d9021..462b2b6 100644 --- a/lustre/mdc/mdc_request.c +++ b/lustre/mdc/mdc_request.c @@ -719,10 +719,12 @@ int mdc_close(struct obd_export *exp, struct mdc_op_data *data, struct obdo *oa, struct obd_device *obd = class_exp2obd(exp); __u32 reqsize[4] = { sizeof(struct ptlrpc_body), sizeof(struct mdt_body) }; - __u32 repsize[4] = { sizeof(struct ptlrpc_body), + __u32 repsize[6] = { sizeof(struct ptlrpc_body), sizeof(struct mdt_body), - obd->u.cli.cl_max_mds_easize, - obd->u.cli.cl_max_mds_cookiesize }; + obd->u.cli.cl_max_mds_easize, + obd->u.cli.cl_max_mds_cookiesize, + sizeof(struct lustre_capa), + sizeof(struct lustre_capa) }; int rc; struct ptlrpc_request *req; struct mdc_open_data *mod; @@ -768,7 +770,7 @@ int mdc_close(struct obd_export *exp, struct mdc_op_data *data, struct obdo *oa, mdc_close_pack(req, REQ_REC_OFF, data, oa, oa->o_valid, och); - ptlrpc_req_set_repsize(req, 4, repsize); + ptlrpc_req_set_repsize(req, 6, repsize); req->rq_commit_cb = mdc_commit_close; LASSERT(req->rq_cb_data == NULL); req->rq_cb_data = mod; -- 1.8.3.1