Whamcloud - gitweb
LU-12081 mdt: rename shouldn't PDO lock if parent is remote 40/34440/2
authorLai Siyao <lai.siyao@whamcloud.com>
Tue, 5 Mar 2019 04:30:15 +0000 (12:30 +0800)
committerOleg Drokin <green@whamcloud.com>
Mon, 1 Apr 2019 07:24:04 +0000 (07:24 +0000)
In rename parent locking, if target parent is source parent, but
it's remote, rename shouldn't PDO lock on it because PDO lock is
for local lock.

Signed-off-by: Lai Siyao <lai.siyao@whamcloud.com>
Change-Id: Ib6ee1f70a50ddec3182c04c38a10ebbf2c384ccd
Reviewed-on: https://review.whamcloud.com/34440
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/mdt/mdt_reint.c

index b0cc3a2..686be9b 100644 (file)
@@ -2397,7 +2397,8 @@ relock:
                if (mtgtdir != msrcdir) {
                        rc = mdt_object_lock_save(info, mtgtdir, lh_tgtdirp, 1,
                                                  cos_incompat);
                if (mtgtdir != msrcdir) {
                        rc = mdt_object_lock_save(info, mtgtdir, lh_tgtdirp, 1,
                                                  cos_incompat);
-               } else if (lh_srcdirp->mlh_pdo_hash !=
+               } else if (!mdt_object_remote(mtgtdir) &&
+                          lh_srcdirp->mlh_pdo_hash !=
                           lh_tgtdirp->mlh_pdo_hash) {
                        rc = mdt_pdir_hash_lock(info, lh_tgtdirp, mtgtdir,
                                                MDS_INODELOCK_UPDATE,
                           lh_tgtdirp->mlh_pdo_hash) {
                        rc = mdt_pdir_hash_lock(info, lh_tgtdirp, mtgtdir,
                                                MDS_INODELOCK_UPDATE,