Whamcloud - gitweb
Branch b_release_1_8_0
authorhuanghua <huanghua>
Thu, 29 Jan 2009 09:08:55 +0000 (09:08 +0000)
committerhuanghua <huanghua>
Thu, 29 Jan 2009 09:08:55 +0000 (09:08 +0000)
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
lustre/mdc/mdc_request.c

index 1f1f445..8eadea5 100644 (file)
@@ -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);
 
index e218e56..5f5742e 100644 (file)
@@ -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;