From: wangdi Date: Thu, 3 Aug 2006 09:56:27 +0000 (+0000) Subject: Branch: b_new_cmd X-Git-Tag: v1_8_0_110~486^2~1290 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=37ec1058aab79b5314791a1482c07eb0aa4de774;p=fs%2Flustre-release.git Branch: b_new_cmd some req should pack the reply after set md size. --- diff --git a/lustre/mdc/mdc_request.c b/lustre/mdc/mdc_request.c index 0247dc0..14dc233 100644 --- a/lustre/mdc/mdc_request.c +++ b/lustre/mdc/mdc_request.c @@ -1038,9 +1038,6 @@ int mdc_get_info(struct obd_export *exp, __u32 keylen, void *key, if (*vallen != sizeof(int)) RETURN(-EINVAL); - /*FIXME: Huanghua will fix this soon. set fixed size - * temporarily*/ - *(int*)val = MAX_MD_SIZE; mdsize = *(int*)val; if (mdsize > exp->exp_obd->u.cli.cl_max_mds_easize) exp->exp_obd->u.cli.cl_max_mds_easize = mdsize; diff --git a/lustre/mdt/mdt_handler.c b/lustre/mdt/mdt_handler.c index 8f2dd34..a4bf12c 100644 --- a/lustre/mdt/mdt_handler.c +++ b/lustre/mdt/mdt_handler.c @@ -657,10 +657,9 @@ static int mdt_reint(struct mdt_thread_info *info) opc = mdt_reint_opcode(info, reint_fmts); if (opc >= 0) { OBD_FAIL_RETURN(OBD_FAIL_MDS_REINT_NET, 0); - - rc = req_capsule_pack(&info->mti_pill); - if (rc == 0) - rc = mdt_reint_internal(info, opc); + + rc = mdt_reint_internal(info, opc); + } else rc = opc; RETURN(rc); @@ -1603,14 +1602,13 @@ static int mdt_intent_reint(enum mdt_it_code opcode, RETURN(-EPROTO); } - rc = req_capsule_pack(&info->mti_pill); - if (rc) - RETURN(rc); - + rc = mdt_reint_internal(info, opc); + rep = req_capsule_server_get(&info->mti_pill, &RMF_DLM_REP); if (rep == NULL) RETURN(-EFAULT); - rep->lock_policy_res2 = mdt_reint_internal(info, opc); + rep->lock_policy_res2 = rc; + intent_set_disposition(rep, DISP_IT_EXECD); mdt_update_last_transno(info, rep->lock_policy_res2); diff --git a/lustre/mdt/mdt_open.c b/lustre/mdt/mdt_open.c index 0af5147..fb75935 100644 --- a/lustre/mdt/mdt_open.c +++ b/lustre/mdt/mdt_open.c @@ -263,6 +263,12 @@ int mdt_reint_open(struct mdt_thread_info *info) struct mdt_reint_record *rr = &info->mti_rr; ENTRY; + req_capsule_set_size(&info->mti_pill, &RMF_MDT_MD, RCL_SERVER, + mdt->mdt_max_mdsize); + result = req_capsule_pack(&info->mti_pill); + if (result) + RETURN(result); + ma->ma_lmm = req_capsule_server_get(&info->mti_pill, &RMF_MDT_MD); ma->ma_lmm_size = req_capsule_get_size(&info->mti_pill, diff --git a/lustre/mdt/mdt_reint.c b/lustre/mdt/mdt_reint.c index d26a9a0..f1a1463 100644 --- a/lustre/mdt/mdt_reint.c +++ b/lustre/mdt/mdt_reint.c @@ -131,6 +131,10 @@ static int mdt_reint_setattr(struct mdt_thread_info *info) DEBUG_REQ(D_INODE, req, "setattr "DFID3" %x", PFID3(rr->rr_fid1), (unsigned int)attr->la_valid); + /*pack the reply*/ + rc = req_capsule_pack(&info->mti_pill); + if (rc) + RETURN(rc); /* MDS_CHECK_RESENT */ lh = &info->mti_lh[MDT_LH_PARENT]; lh->mlh_mode = LCK_EX; @@ -192,7 +196,11 @@ static int mdt_reint_create(struct mdt_thread_info *info) { int rc; ENTRY; - + + rc = req_capsule_pack(&info->mti_pill); + if (rc) + RETURN(rc); + switch (info->mti_attr.ma_attr.la_mode & S_IFMT) { case S_IFREG: case S_IFDIR:{ @@ -235,6 +243,14 @@ static int mdt_reint_unlink(struct mdt_thread_info *info) DEBUG_REQ(D_INODE, req, "unlink "DFID3"/%s\n", PFID3(rr->rr_fid1), rr->rr_name); + /*pack the reply*/ + 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_LOGCOOKIES, RCL_SERVER, + info->mti_mdt->mdt_max_cookiesize); + rc = req_capsule_pack(&info->mti_pill); + if (rc) + RETURN(rc); /* MDS_CHECK_RESENT here */ @@ -266,6 +282,8 @@ static int mdt_reint_unlink(struct mdt_thread_info *info) /*step 3: do some checking ...*/ + + /* step 4: delete it */ /* cmm will take care if child is local or remote */ ma->ma_lmm = req_capsule_server_get(&info->mti_pill, &RMF_MDT_MD); @@ -313,6 +331,9 @@ static int mdt_reint_link(struct mdt_thread_info *info) /* MDS_CHECK_RESENT here */ + rc = req_capsule_pack(&info->mti_pill); + if (rc) + RETURN(rc); /* step 1: lock the source */ lhs = &info->mti_lh[MDT_LH_PARENT]; lhs->mlh_mode = LCK_EX; @@ -438,6 +459,10 @@ static int mdt_reint_rename(struct mdt_thread_info *info) RETURN(mdt_reint_rename_tgt(info)); } + rc = req_capsule_pack(&info->mti_pill); + if (rc) + RETURN(rc); + lh_newp = &info->mti_lh[MDT_LH_NEW]; /* step 1: lock the source dir */