From 4ef3118a16ae7bbfd17d27517552fec3570d8f12 Mon Sep 17 00:00:00 2001 From: phil Date: Wed, 3 Sep 2003 18:19:11 +0000 Subject: [PATCH] b=1861 Fixes LBUG in ll_it_open_error, if the server couldn't lookup the parent. --- lustre/llite/namei.c | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 */ -- 1.8.3.1