struct ofd_object *ofd_object_find(const struct lu_env *env, struct ofd_device *ofd, const struct lu_fid *fid) { struct ofd_object *fo; struct lu_object *o; ENTRY; o = lu_object_find(env, &ofd->ofd_dt_dev.dd_lu_dev, fid, NULL); if (likely(!IS_ERR(o))) fo = ofd_obj(o); else fo = ERR_CAST(o); /* return error */ RETURN(fo); }
static struct md_object *mdo_locate(const struct lu_env *env, struct md_device *md, const struct lu_fid *fid) { struct lu_object *obj; struct md_object *mdo; obj = lu_object_find(env, &md->md_lu_dev, fid, NULL); if (!IS_ERR(obj)) { obj = lu_object_locate(obj->lo_header, md->md_lu_dev.ld_type); LASSERT(obj != NULL); mdo = lu2md(obj); } else { mdo = ERR_PTR(PTR_ERR(obj)); } return mdo; }
static struct dt_object *out_object_find(struct mdt_thread_info *info, struct lu_fid *fid) { struct lu_object *obj; struct dt_object *dt_obj; obj = lu_object_find(info->mti_env, &info->mti_mdt->mdt_md_dev.md_lu_dev, fid, NULL); if (IS_ERR(obj)) return (struct dt_object *)obj; dt_obj = out_get_dt_obj(obj); if (IS_ERR(dt_obj)) { lu_object_put(info->mti_env, obj); return ERR_PTR(-ENOENT); } return dt_obj; }