* GPL HEADER END
*/
/*
- * Copyright (c) 2012, Intel Corporation.
+ * Copyright (c) 2012, 2013, Intel Corporation.
* Use is subject to license terms.
*
* lustre/mdt/mdt_lvb.c
RETURN(rc);
}
- if (lock->l_resource->lr_type != LDLM_IBITS ||
- !(lock->l_policy_data.l_inodebits.bits & MDS_INODELOCK_LAYOUT))
+ if (!ldlm_has_layout(lock))
RETURN(0);
/* layout lock will be granted to client, fill in lvb with layout */
/* XXX create an env to talk to mdt stack. We should get this env from
* ptlrpc_thread->t_env. */
rc = lu_env_init(&env, LCT_MD_THREAD);
- LASSERT(rc == 0);
+ /* Likely ENOMEM */
+ if (rc)
+ RETURN(rc);
info = lu_context_key_get(&env.le_ctx, &mdt_thread_key);
- LASSERT(info != NULL);
+ /* Likely ENOMEM */
+ if (info == NULL)
+ GOTO(out, rc = -ENOMEM);
+
memset(info, 0, sizeof *info);
info->mti_env = &env;
info->mti_exp = lock->l_export;
/* XXX get fid by resource id. why don't include fid in ldlm_resource */
fid = &info->mti_tmp_fid2;
- fid_build_from_res_name(fid, &lock->l_resource->lr_name);
+ fid_extract_from_res_name(fid, &lock->l_resource->lr_name);
obj = mdt_object_find(&env, info->mti_mdt, fid);
if (IS_ERR(obj))
if (lvblen < rc) {
CERROR("%s: expected %d actual %d.\n",
- info->mti_exp->exp_obd->obd_name, rc, lvblen);
+ mdt_obd_name(mdt), rc, lvblen);
GOTO(out, rc = -ERANGE);
}