* 2 - child. Version of child by FID. Must be ENOENT. It is mostly sanity
* check.
*/
-static int mdt_md_create(struct mdt_thread_info *info)
+static int mdt_create(struct mdt_thread_info *info)
{
struct mdt_device *mdt = info->mti_mdt;
struct mdt_object *parent;
RETURN(err_serious(-EOPNOTSUPP));
}
- rc = mdt_md_create(info);
+ rc = mdt_create(info);
RETURN(rc);
}
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);
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;
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);
* 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",
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);
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);
&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);
&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);