Whamcloud - gitweb
LU-12624 lod: alloc dir stripes by QoS
[fs/lustre-release.git] / lustre / mdt / mdt_reint.c
index 0fa2b6b..81c148f 100644 (file)
@@ -768,19 +768,6 @@ static int mdt_reint_setattr(struct mdt_thread_info *info,
 
                        buf->lb_buf = lmu;
                        buf->lb_len = ma->ma_lmv_size;
-
-                       if (le32_to_cpu(lmu->lum_hash_type) &
-                           LMV_HASH_FLAG_SPACE) {
-                               /*
-                                * only allow setting "space" hash flag on
-                                * plain directory.
-                                */
-                               rc = mdt_object_striped(info, mo);
-                               if (rc)
-                                       GOTO(out_put,
-                                            rc = (rc == 1) ? -EPERM : rc);
-                       }
-
                        name = XATTR_NAME_DEFAULT_LMV;
                        /* force client to update dir default layout */
                        lockpart |= MDS_INODELOCK_LOOKUP;
@@ -2703,14 +2690,15 @@ static int mdt_reint_resync(struct mdt_thread_info *info,
                            struct mdt_lock_handle *lhc)
 {
        struct mdt_reint_record *rr = &info->mti_rr;
-       struct ptlrpc_request   *req = mdt_info_req(info);
-       struct md_attr          *ma = &info->mti_attr;
-       struct mdt_object       *mo;
-       struct ldlm_lock        *lease;
-       struct mdt_body         *repbody;
-       struct md_layout_change  layout = { .mlc_mirror_id = rr->rr_mirror_id };
-       bool                     lease_broken;
-       int                      rc, rc2;
+       struct ptlrpc_request *req = mdt_info_req(info);
+       struct md_attr *ma = &info->mti_attr;
+       struct mdt_object *mo;
+       struct ldlm_lock *lease;
+       struct mdt_body *repbody;
+       struct md_layout_change layout = { .mlc_mirror_id = rr->rr_mirror_id };
+       bool lease_broken;
+       int rc, rc2;
+
        ENTRY;
 
        DEBUG_REQ(D_INODE, req, DFID", FLR file resync", PFID(rr->rr_fid1));
@@ -2750,10 +2738,13 @@ static int mdt_reint_resync(struct mdt_thread_info *info,
 
        /* the file has yet opened by anyone else after we took the lease. */
        layout.mlc_opc = MD_LAYOUT_RESYNC;
-       rc = mdt_layout_change(info, mo, &layout);
+       lhc = &info->mti_lh[MDT_LH_LOCAL];
+       rc = mdt_layout_change(info, mo, lhc, &layout);
        if (rc)
                GOTO(out_unlock, rc);
 
+       mdt_object_unlock(info, mo, lhc, 0);
+
        ma->ma_need = MA_INODE;
        ma->ma_valid = 0;
        rc = mdt_attr_get_complex(info, mo, ma);