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;
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));
/* 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);