From: phil Date: Wed, 3 Sep 2003 18:19:11 +0000 (+0000) Subject: b=1861 X-Git-Tag: v1_7_100~3301 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=4ef3118a16ae7bbfd17d27517552fec3570d8f12 b=1861 Fixes LBUG in ll_it_open_error, if the server couldn't lookup the parent. --- diff --git a/lustre/llite/namei.c b/lustre/llite/namei.c index 5260825..282de3a 100644 --- a/lustre/llite/namei.c +++ b/lustre/llite/namei.c @@ -151,6 +151,13 @@ int ll_it_open_error(int phase, struct lookup_intent *it) else return 0; } + + if (it_disposition(it, DISP_IT_EXECD)) { + if (phase == DISP_IT_EXECD) + return it->it_status; + else + return 0; + } CERROR("it disp: %X, status: %d\n", it->it_disposition, it->it_status); LBUG(); return 0; @@ -332,6 +339,9 @@ int ll_intent_lock(struct inode *parent, struct dentry **de, LASSERT(it->it_status != 0); GOTO(drop_req, rc = it->it_status); } + rc = ll_it_open_error(DISP_IT_EXECD, it); + if (rc) + GOTO(drop_req, rc); mds_body = lustre_msg_buf(request->rq_repmsg, 1, sizeof(*mds_body)); LASSERT(mds_body != NULL); /* mdc_enqueue checked */