From 30ece848c046dda5c450dc49c6b146360c077a22 Mon Sep 17 00:00:00 2001 From: Di Wang Date: Fri, 26 Feb 2016 01:37:03 -0500 Subject: [PATCH] LU-7825 mdt: release parent lock correctly for rename Release source and target parent lock correctly in mdt_reint_rename_internal(). Signed-off-by: Di Wang Change-Id: Iea4f6c4571362bff700167bdf29d2833d5f30a4d Reviewed-on: http://review.whamcloud.com/18707 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Lai Siyao Reviewed-by: Andreas Dilger Reviewed-by: Oleg Drokin --- lustre/mdt/mdt_reint.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lustre/mdt/mdt_reint.c b/lustre/mdt/mdt_reint.c index 6694339..be3727d 100644 --- a/lustre/mdt/mdt_reint.c +++ b/lustre/mdt/mdt_reint.c @@ -1907,6 +1907,10 @@ relock: rc = mdt_object_lock_save(info, msrcdir, lh_srcdirp, 0, cos_incompat); + if (rc != 0) { + mdt_object_unlock(info, mtgtdir, lh_tgtdirp, rc); + GOTO(out_put_tgtdir, rc); + } } else { rc = mdt_object_lock_save(info, msrcdir, lh_srcdirp, 0, cos_incompat); @@ -1925,9 +1929,11 @@ relock: cos_incompat); OBD_FAIL_TIMEOUT(OBD_FAIL_MDS_PDO_LOCK2, 10); } + if (rc != 0) { + mdt_object_unlock(info, msrcdir, lh_srcdirp, rc); + GOTO(out_put_tgtdir, rc); + } } - if (rc) - GOTO(out_unlock_parents, rc); OBD_FAIL_TIMEOUT(OBD_FAIL_MDS_RENAME4, 5); OBD_FAIL_TIMEOUT(OBD_FAIL_MDS_RENAME2, 5); -- 1.8.3.1