Whamcloud - gitweb
LU-7825 mdt: release parent lock correctly for rename 07/18707/2
authorDi Wang <di.wang@intel.com>
Fri, 26 Feb 2016 06:37:03 +0000 (01:37 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 1 Mar 2016 13:20:55 +0000 (13:20 +0000)
Release source and target parent lock correctly in
mdt_reint_rename_internal().

Signed-off-by: Di Wang <di.wang@intel.com>
Change-Id: Iea4f6c4571362bff700167bdf29d2833d5f30a4d
Reviewed-on: http://review.whamcloud.com/18707
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/mdt/mdt_reint.c

index 6694339..be3727d 100644 (file)
@@ -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);