Whamcloud - gitweb
LU-2700 mdt: serializing the rename
authorwangdi <di.wang@whamcloud.com>
Sat, 16 Nov 2013 03:05:28 +0000 (19:05 -0800)
committerOleg Drokin <green@whamcloud.com>
Thu, 31 Jan 2013 16:56:04 +0000 (11:56 -0500)
BFL is needed in the rename process even though the source and
target are under the same directory, because we still need
serialize the locking of these two objects.

Signed-off-by: wang di <di.wang@intel.com>
Change-Id: I61593e3902f1f81ac282c020d912fdf28ce2cc2c
Reviewed-on: http://review.whamcloud.com/5203
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Tested-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
lustre/mdt/mdt_reint.c

index 5aa043b..e342b20 100644 (file)
@@ -986,12 +986,10 @@ static int mdt_reint_rename(struct mdt_thread_info *info,
                   PFID(rr->rr_fid1), rr->rr_name,
                   PFID(rr->rr_fid2), rr->rr_tgt);
 
                   PFID(rr->rr_fid1), rr->rr_name,
                   PFID(rr->rr_fid2), rr->rr_tgt);
 
-       if (!lu_fid_eq(rr->rr_fid1, rr->rr_fid2)) {
-               rc = mdt_rename_lock(info, &rename_lh);
-               if (rc) {
-                       CERROR("Can't lock FS for rename, rc %d\n", rc);
-                       RETURN(rc);
-               }
+       rc = mdt_rename_lock(info, &rename_lh);
+       if (rc) {
+               CERROR("Can't lock FS for rename, rc %d\n", rc);
+               RETURN(rc);
        }
 
         lh_newp = &info->mti_lh[MDT_LH_NEW];
        }
 
         lh_newp = &info->mti_lh[MDT_LH_NEW];