Whamcloud - gitweb
LU-7988 hsm: run HSM coordinator once per second at most
[fs/lustre-release.git] / lustre / mdt / mdt_reint.c
index 5184c0d..a252b5f 100644 (file)
@@ -1007,7 +1007,7 @@ relock:
                rc = mdt_remote_object_lock(info, mp, mdt_object_fid(mc),
                                            &child_lh->mlh_rreg_lh,
                                            child_lh->mlh_rreg_mode,
-                                           MDS_INODELOCK_LOOKUP, false, false);
+                                           MDS_INODELOCK_LOOKUP, false);
                if (rc != ELDLM_OK)
                        GOTO(put_child, rc);
 
@@ -1261,7 +1261,7 @@ static int mdt_rename_lock(struct mdt_thread_info *info,
                rc = mdt_remote_object_lock(info, obj,
                                            &LUSTRE_BFL_FID, lh,
                                            LCK_EX,
-                                           MDS_INODELOCK_UPDATE, false, false);
+                                           MDS_INODELOCK_UPDATE, false);
                mdt_object_put(info->mti_env, obj);
        } else {
                struct ldlm_namespace *ns = info->mti_mdt->mdt_namespace;
@@ -1391,6 +1391,7 @@ again:
                struct mdt_lock_list *mll;
                struct lu_name name;
                struct lu_fid  fid;
+               __u64 ibits;
 
                linkea_entry_unpack(ldata.ld_lee, &ldata.ld_reclen,
                                    &name, &fid);
@@ -1435,9 +1436,10 @@ again:
                 * cannot be gotten because of conflicting locks, then drop all
                 * current locks, send an AST to the client, and start again. */
                mdt_lock_pdo_init(&mll->mll_lh, LCK_PW, &name);
-               rc = mdt_reint_object_lock_try(info, mdt_pobj, &mll->mll_lh,
-                                               MDS_INODELOCK_UPDATE, true);
-               if (rc == 0) {
+               ibits = 0;
+               rc = mdt_object_lock_try(info, mdt_pobj, &mll->mll_lh, &ibits,
+                                        MDS_INODELOCK_UPDATE, true);
+               if (!(ibits & MDS_INODELOCK_UPDATE)) {
                        mdt_unlock_list(info, lock_list, rc);
 
                        CDEBUG(D_INFO, "%s: busy lock on "DFID" %s retry %d\n",
@@ -1640,7 +1642,7 @@ out_lease:
                rc = mdt_remote_object_lock(info, msrcdir, mdt_object_fid(mold),
                                            &lh_childp->mlh_rreg_lh,
                                            lh_childp->mlh_rreg_mode,
-                                           MDS_INODELOCK_LOOKUP, false, false);
+                                           MDS_INODELOCK_LOOKUP, false);
                if (rc != ELDLM_OK)
                        GOTO(out_unlock_list, rc);
 
@@ -1708,7 +1710,7 @@ out_lease:
                                            mdt_object_fid(mnew),
                                            &lh_tgtp->mlh_rreg_lh,
                                            lh_tgtp->mlh_rreg_mode,
-                                           MDS_INODELOCK_UPDATE, false, false);
+                                           MDS_INODELOCK_UPDATE, false);
                if (rc != 0) {
                        lh_tgtp = NULL;
                        GOTO(out_put_new, rc);
@@ -2020,7 +2022,7 @@ relock:
                                                    &lh_oldp->mlh_rreg_lh,
                                                    lh_oldp->mlh_rreg_mode,
                                                    MDS_INODELOCK_LOOKUP,
-                                                   false, false);
+                                                   false);
                        if (rc != ELDLM_OK)
                                GOTO(out_put_new, rc);
 
@@ -2069,7 +2071,7 @@ relock:
                                                    &lh_oldp->mlh_rreg_lh,
                                                    lh_oldp->mlh_rreg_mode,
                                                    MDS_INODELOCK_LOOKUP,
-                                                   false, false);
+                                                   false);
                        if (rc != ELDLM_OK)
                                GOTO(out_put_old, rc);