From 99dcf058f452f5deb43cbc58f7dd882bcf003d7f Mon Sep 17 00:00:00 2001 From: pschwan Date: Thu, 30 Jan 2003 20:27:07 +0000 Subject: [PATCH] - return 0, not ENOENT, from a failed lookup in mds_open --- lustre/mds/mds_open.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lustre/mds/mds_open.c b/lustre/mds/mds_open.c index 832bcae..adbdef9 100644 --- a/lustre/mds/mds_open.c +++ b/lustre/mds/mds_open.c @@ -129,7 +129,12 @@ int mds_open(struct mds_update_record *rec, int offset, if ((rec->ur_flags & (O_CREAT|O_EXCL)) == (O_CREAT|O_EXCL)) { mds_pack_inode2fid(&body->fid1, dchild->d_inode); mds_pack_inode2body(body, dchild->d_inode); - GOTO(out_ldput, rc = -EEXIST); + if (S_ISREG(dchild->d_inode->i_mode)) + rc = mds_pack_md(obd, req->rq_repmsg, 3, body, + dchild->d_inode); + if (rc == 0) + rc = -EEXIST; + GOTO(out_ldput, rc); } } else if ((rec->ur_flags & O_CREAT) && !dchild->d_inode) { int err; @@ -156,7 +161,7 @@ int mds_open(struct mds_update_record *rec, int offset, } } else if (!dchild->d_inode) { up(&dir->i_sem); - GOTO(out_ldput, rc = -ENOENT); + GOTO(out_ldput, rc = 0); } /* -- 1.8.3.1