Skip to content
Snippets Groups Projects
Commit 025ddef1 authored by bwzhou's avatar bwzhou
Browse files

Branch b1_6

b=13380
r=green, bwzhou

Mountpoint references were being leaked during open reply reconstruction after
an MDS restart. Drop mountpoint reference in reconstruct_open() and free dentry
reference also.
parent c60fd462
No related branches found
No related tags found
No related merge requests found
......@@ -24,6 +24,14 @@ tbd Sun Microsystems, Inc.
'tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV'.
For more information, please refer to bugzilla 13904.
Severity : minor
Frequency : very rare
Bugzilla : 13380
Description: MDT cannot be unmounted, reporting "Mount still busy"
Details : Mountpoint references were being leaked during open reply
reconstruction after an MDS restart. Drop mountpoint reference
in reconstruct_open() and free dentry reference also.
Severity : normal
Bugzilla : 15443
Description: wait until IO finished before start new when do lock cancel.
......
......@@ -619,11 +619,15 @@ static void reconstruct_open(struct mds_update_record *rec, int offset,
CERROR("Re-opened file \n");
mfd = mds_dentry_open(dchild, mds->mds_vfsmnt,
rec->ur_flags & ~MDS_OPEN_TRUNC, req);
if (!mfd) {
CERROR("mds: out of memory\n");
GOTO(out_dput, req->rq_status = -ENOMEM);
mntput(mds->mds_vfsmnt);
if (IS_ERR(mfd)) {
req->rq_status = PTR_ERR(mfd);
mfd = NULL;
CERROR("%s: opening inode "LPU64" failed: rc %d\n",
req->rq_export->exp_obd->obd_name,
(__u64)dchild->d_inode->i_ino, req->rq_status);
GOTO(out_dput, req->rq_status);
}
put_child = 0;
} else {
body->handle.cookie = mfd->mfd_handle.h_cookie;
CDEBUG(D_INODE, "resend mfd %p, cookie "LPX64"\n", mfd,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment