From: huanghua Date: Fri, 28 Apr 2006 06:00:47 +0000 (+0000) Subject: fix a little in mdt_intent_policy. X-Git-Tag: v1_8_0_110~486^2~1914 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=0225609d72ddfad3ec0e2640eba174e5ab74a04e;p=fs%2Flustre-release.git fix a little in mdt_intent_policy. --- diff --git a/lustre/mdt/mdt_handler.c b/lustre/mdt/mdt_handler.c index 473ace2..fd81607 100644 --- a/lustre/mdt/mdt_handler.c +++ b/lustre/mdt/mdt_handler.c @@ -1057,14 +1057,16 @@ static int mdt_intent_policy(struct ldlm_namespace *ns, /* We already got it in mdt_handle. But we have to do it again*/ info = lu_context_key_get(req->rq_svc_thread->t_ctx, &mdt_thread_key); + LASSERT(info != NULL); mdt_thread_info_init(info); if (req->rq_reqmsg->bufcount <= MDS_REQ_INTENT_IT_OFF) { /* No intent was provided */ - int size = sizeof(struct ldlm_reply); - rc = lustre_pack_reply(req, 1, &size, NULL); + info->mti_rep_buf_size[0] = sizeof(struct ldlm_reply); + rc = lustre_pack_reply(req, 1, info->mti_rep_buf_size, NULL); LASSERT(rc == 0); + mdt_thread_info_fini(info); RETURN(0); } @@ -1072,6 +1074,7 @@ static int mdt_intent_policy(struct ldlm_namespace *ns, lustre_swab_ldlm_intent); if (it == NULL) { CERROR("Intent missing\n"); + mdt_thread_info_fini(info); RETURN(req->rq_status = -EFAULT); } @@ -1095,8 +1098,10 @@ static int mdt_intent_policy(struct ldlm_namespace *ns, rc = lustre_pack_reply(req, info->mti_rep_buf_nr, info->mti_rep_buf_size, NULL); - if (rc) + if (rc){ + mdt_thread_info_fini(info); RETURN(req->rq_status = rc); + } rep = lustre_msg_buf(req->rq_repmsg, 0, sizeof (*rep)); intent_set_disposition(rep, DISP_IT_EXECD); diff --git a/lustre/mdt/mdt_reint.c b/lustre/mdt/mdt_reint.c index 1d54c35..c82931c 100644 --- a/lustre/mdt/mdt_reint.c +++ b/lustre/mdt/mdt_reint.c @@ -38,7 +38,7 @@ /* object operations */ -static int mdt_md_mkdir(struct mdt_thread_info *info) +static int mdt_md_mkdir(struct mdt_thread_info *info, struct lustre_handle *lockh) { struct mdt_device *mdt = info->mti_mdt; struct mdt_object *parent; @@ -71,7 +71,7 @@ static int mdt_md_mkdir(struct mdt_thread_info *info) static int mdt_reint_setattr(struct mdt_thread_info *info, - struct lustre_handle *lh) + struct lustre_handle *lockh) { ENTRY; RETURN(-EOPNOTSUPP); @@ -79,7 +79,7 @@ static int mdt_reint_setattr(struct mdt_thread_info *info, static int mdt_reint_create(struct mdt_thread_info *info, - struct lustre_handle *lh) + struct lustre_handle *lockh) { int rc; ENTRY; @@ -90,7 +90,7 @@ static int mdt_reint_create(struct mdt_thread_info *info, break; } case S_IFDIR:{ - rc = mdt_md_mkdir(info); + rc = mdt_md_mkdir(info,lockh); break; } case S_IFLNK:{ @@ -112,14 +112,14 @@ static int mdt_reint_create(struct mdt_thread_info *info, static int mdt_reint_unlink(struct mdt_thread_info *info, - struct lustre_handle *lh) + struct lustre_handle *lockh) { ENTRY; RETURN(-EOPNOTSUPP); } static int mdt_reint_link(struct mdt_thread_info *info, - struct lustre_handle *lh) + struct lustre_handle *lockh) { ENTRY; RETURN(-EOPNOTSUPP);