void *eadata;
int rc;
int size[3] = {sizeof(*body)};
- int bufcount = 1;
+ int bufcount = 3, offset = 1;
ENTRY;
-
+
/* request message already built */
-
if (ea_size != 0) {
- size[bufcount++] = ea_size;
+ size[offset++] = ea_size;
CDEBUG(D_INODE, "reserved %u bytes for MD/symlink in packet\n",
ea_size);
}
if (acl_size) {
- size[bufcount++] = acl_size;
+ size[offset++] = acl_size;
CDEBUG(D_INODE, "reserved %u bytes for ACL\n", acl_size);
}
-
+ /*For new req layout, different bufcount will cause different
+ *replen, so we should make client/server has same bufcount,
+ *so we set bufcount to 3 here, although some msg size might be 0*/
req->rq_replen = lustre_msg_size(bufcount, size);
mdc_get_rpc_lock(exp->exp_obd->u.cli.cl_rpc_lock, NULL);
ENTRY;
+ req_capsule_set_size(&info->mti_pill, &RMF_MDT_MD,
+ RCL_SERVER, info->mti_mdt->mdt_max_mdsize);
req_capsule_set_size(&info->mti_pill, &RMF_EADATA,
RCL_SERVER, LUSTRE_POSIX_ACL_MAX_SIZE);
-
+
rc = req_capsule_pack(&info->mti_pill);
if (rc)
RETURN(rc);