Introduce dt_object_put() and dt_object_put_nocache() and use them
instead of lu_object_put() and lu_object_put_nocache(), to balance
the use of dt_object_locate() to make a symmetrical interface.
Move the existing ofd_object_put() and osd_object_put() wrappers
into common header functions to use instead of dt_object_put()
or lu_object_put() calls in the respective code, when possible.
Functionally, this patch is a no-op.
Test-Parameters: trivial
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: I7ef657438441de4a91ee08edb4bc097ac97b7418
Reviewed-on: https://review.whamcloud.com/23092
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
45 files changed:
-void seq_store_fini(struct lu_server_seq *seq,
- const struct lu_env *env)
+void seq_store_fini(struct lu_server_seq *seq, const struct lu_env *env)
- if (seq->lss_obj != NULL) {
- if (!IS_ERR(seq->lss_obj))
- lu_object_put(env, &seq->lss_obj->do_lu);
- seq->lss_obj = NULL;
- }
+ if (seq->lss_obj != NULL) {
+ if (!IS_ERR(seq->lss_obj))
+ dt_object_put(env, seq->lss_obj);
+ seq->lss_obj = NULL;
+ }
LASSERT(dt_obj != NULL);
if (!dt_object_exists(dt_obj)) {
LASSERT(dt_obj != NULL);
if (!dt_object_exists(dt_obj)) {
- lu_object_put(env, &dt_obj->do_lu);
+ dt_object_put(env, dt_obj);
dt_obj = dt_find_or_create(env, dt, &fid, &dof, attr);
fld->lsf_new = 1;
if (IS_ERR(dt_obj)) {
dt_obj = dt_find_or_create(env, dt, &fid, &dof, attr);
fld->lsf_new = 1;
if (IS_ERR(dt_obj)) {
if (rc < 0) {
if (dt_obj != NULL)
if (rc < 0) {
if (dt_obj != NULL)
- lu_object_put(env, &dt_obj->do_lu);
+ dt_object_put(env, dt_obj);
fld->lsf_obj = NULL;
}
RETURN(rc);
fld->lsf_obj = NULL;
}
RETURN(rc);
ENTRY;
if (fld->lsf_obj != NULL) {
if (!IS_ERR(fld->lsf_obj))
ENTRY;
if (fld->lsf_obj != NULL) {
if (!IS_ERR(fld->lsf_obj))
- lu_object_put(env, &fld->lsf_obj->do_lu);
+ dt_object_put(env, fld->lsf_obj);
fld->lsf_obj = NULL;
}
EXIT;
fld->lsf_obj = NULL;
}
EXIT;
+static inline void dt_object_put(const struct lu_env *env,
+ struct dt_object *dto)
+{
+ lu_object_put(env, &dto->do_lu);
+}
+
+static inline void dt_object_put_nocache(const struct lu_env *env,
+ struct dt_object *dto)
+{
+ lu_object_put_nocache(env, &dto->do_lu);
+}
+
int local_oid_storage_init(const struct lu_env *env, struct dt_device *dev,
const struct lu_fid *first_fid,
struct local_oid_storage **los);
int local_oid_storage_init(const struct lu_env *env, struct dt_device *dev,
const struct lu_fid *first_fid,
struct local_oid_storage **los);
static inline void lfsck_object_put(const struct lu_env *env,
struct dt_object *obj)
{
static inline void lfsck_object_put(const struct lu_env *env,
struct dt_object *obj)
{
- lu_object_put(env, &obj->do_lu);
+ dt_object_put(env, obj);
}
static inline struct seq_server_site
}
static inline struct seq_server_site
lfsck_object_put(env, parent);
else
/* The layout EA is changed, need to be reloaded next time. */
lfsck_object_put(env, parent);
else
/* The layout EA is changed, need to be reloaded next time. */
- lu_object_put_nocache(env, &parent->do_lu);
+ dt_object_put_nocache(env, parent);
out:
down_write(&com->lc_sem);
out:
down_write(&com->lc_sem);
}
case LCFG_PRE_CLEANUP: {
if (lod->lod_md_root != NULL) {
}
case LCFG_PRE_CLEANUP: {
if (lod->lod_md_root != NULL) {
- lu_object_put(env, &lod->lod_md_root->ldo_obj.do_lu);
+ dt_object_put(env, &lod->lod_md_root->ldo_obj);
lod->lod_md_root = NULL;
}
lod->lod_md_root = NULL;
}
if (IS_ERR(dto))
GOTO(out_put, rc = PTR_ERR(dto));
if (IS_ERR(dto))
GOTO(out_put, rc = PTR_ERR(dto));
- lu_object_put(env, &dto->do_lu);
+ dt_object_put(env, dto);
/* Create update log dir */
lu_update_log_dir_fid(fid, index);
/* Create update log dir */
lu_update_log_dir_fid(fid, index);
if (IS_ERR(dto))
GOTO(out_put, rc = PTR_ERR(dto));
if (IS_ERR(dto))
GOTO(out_put, rc = PTR_ERR(dto));
- lu_object_put(env, &dto->do_lu);
+ dt_object_put(env, dto);
rc = lod_prepare_distribute_txn(env, lod);
if (rc != 0)
rc = lod_prepare_distribute_txn(env, lod);
if (rc != 0)
GOTO(out_put, rc);
out_put:
GOTO(out_put, rc);
out_put:
- lu_object_put(env, &root->do_lu);
+ dt_object_put(env, root);
if (rc != 0) {
for (i = 0; i < stripe_len; i++)
if (stripe[i] != NULL)
if (rc != 0) {
for (i = 0; i < stripe_len; i++)
if (stripe[i] != NULL)
- lu_object_put(env, &stripe[i]->do_lu);
+ dt_object_put(env, stripe[i]);
OBD_FREE(stripe, sizeof(stripe[0]) * stripe_len);
lo->ldo_stripenr = 0;
OBD_FREE(stripe, sizeof(stripe[0]) * stripe_len);
lo->ldo_stripenr = 0;
if (rc < 0) {
for (i = 0; i < stripe_count; i++)
if (stripe[i] != NULL)
if (rc < 0) {
for (i = 0; i < stripe_count; i++)
if (stripe[i] != NULL)
- lu_object_put(env, &stripe[i]->do_lu);
+ dt_object_put(env, stripe[i]);
OBD_FREE(stripe, sizeof(stripe[0]) * stripe_count);
lo->ldo_stripenr = 0;
lo->ldo_stripes_allocated = 0;
OBD_FREE(stripe, sizeof(stripe[0]) * stripe_count);
lo->ldo_stripenr = 0;
lo->ldo_stripes_allocated = 0;
spin_lock(&d->lod_lock);
if (d->lod_md_root != NULL)
spin_lock(&d->lod_lock);
if (d->lod_md_root != NULL)
- lu_object_put(env,
- &d->lod_md_root->ldo_obj.do_lu);
+ dt_object_put(env, &d->lod_md_root->ldo_obj);
d->lod_md_root = lroot;
spin_unlock(&d->lod_lock);
}
d->lod_md_root = lroot;
spin_unlock(&d->lod_lock);
}
for (i = 0; i < lo->ldo_stripenr; i++) {
if (lo->ldo_stripe[i])
for (i = 0; i < lo->ldo_stripenr; i++) {
if (lo->ldo_stripe[i])
- lu_object_put(env, &lo->ldo_stripe[i]->do_lu);
+ dt_object_put(env, lo->ldo_stripe[i]);
}
len = sizeof(struct dt_object *) * lo->ldo_stripes_allocated;
}
len = sizeof(struct dt_object *) * lo->ldo_stripes_allocated;
lod2obd(lod)->obd_name, stripe_cnt, nfound);
for (i = 0; i < nfound; i++) {
LASSERT(stripe[i] != NULL);
lod2obd(lod)->obd_name, stripe_cnt, nfound);
for (i = 0; i < nfound; i++) {
LASSERT(stripe[i] != NULL);
- lu_object_put(env, &stripe[i]->do_lu);
+ dt_object_put(env, stripe[i]);
if (rc < 0) {
for (i = 0; i < stripe_len; i++)
if (stripe[i] != NULL)
if (rc < 0) {
for (i = 0; i < stripe_len; i++)
if (stripe[i] != NULL)
- lu_object_put(env, &stripe[i]->do_lu);
+ dt_object_put(env, stripe[i]);
OBD_FREE(stripe, sizeof(stripe[0]) * stripe_len);
lo->ldo_stripenr = 0;
OBD_FREE(stripe, sizeof(stripe[0]) * stripe_len);
lo->ldo_stripenr = 0;
*fid = *lu_object_fid(&dto->do_lu);
/* since stack is not fully set up the local_storage uses own stack
* and we should drop its object from cache */
*fid = *lu_object_fid(&dto->do_lu);
/* since stack is not fully set up the local_storage uses own stack
* and we should drop its object from cache */
- lu_object_put_nocache(env, &dto->do_lu);
+ dt_object_put_nocache(env, dto);
- lu_object_put(env, &parent->do_lu);
+ dt_object_put(env, parent);
if (!dt_try_as_dir(env, d)) {
CERROR("%s: \"%s\" is not an index: rc = %d\n",
mdd2obd_dev(mdd)->obd_name, orph_index_name, rc);
if (!dt_try_as_dir(env, d)) {
CERROR("%s: \"%s\" is not an index: rc = %d\n",
mdd2obd_dev(mdd)->obd_name, orph_index_name, rc);
- lu_object_put(env, &d->do_lu);
RETURN(-ENOTDIR);
}
mdd->mdd_orphans = d;
RETURN(-ENOTDIR);
}
mdd->mdd_orphans = d;
void orph_index_fini(const struct lu_env *env, struct mdd_device *mdd)
{
void orph_index_fini(const struct lu_env *env, struct mdd_device *mdd)
{
- ENTRY;
- if (mdd->mdd_orphans != NULL) {
- lu_object_put(env, &mdd->mdd_orphans->do_lu);
- mdd->mdd_orphans = NULL;
- }
- EXIT;
+ ENTRY;
+ if (mdd->mdd_orphans != NULL) {
+ dt_object_put(env, mdd->mdd_orphans);
+ mdd->mdd_orphans = NULL;
+ }
+ EXIT;
}
static int __mdd_orphan_cleanup(void *args)
}
static int __mdd_orphan_cleanup(void *args)
dto = local_file_find_or_create(env, cli->cl_mgc_los, root,
MOUNT_CONFIGS_DIR,
S_IFDIR | S_IRUGO | S_IWUSR | S_IXUGO);
dto = local_file_find_or_create(env, cli->cl_mgc_los, root,
MOUNT_CONFIGS_DIR,
S_IFDIR | S_IRUGO | S_IWUSR | S_IXUGO);
- lu_object_put_nocache(env, &root->do_lu);
+ dt_object_put_nocache(env, root);
if (IS_ERR(dto))
GOTO(out_los, rc = PTR_ERR(dto));
if (IS_ERR(dto))
GOTO(out_los, rc = PTR_ERR(dto));
EXIT;
out_llog:
if (rc) {
EXIT;
out_llog:
if (rc) {
- lu_object_put(env, &cli->cl_mgc_configs_dir->do_lu);
+ dt_object_put(env, cli->cl_mgc_configs_dir);
cli->cl_mgc_configs_dir = NULL;
}
out_los:
cli->cl_mgc_configs_dir = NULL;
}
out_los:
mgc_local_llog_fini(env, obd);
mgc_local_llog_fini(env, obd);
- lu_object_put_nocache(env, &cli->cl_mgc_configs_dir->do_lu);
+ dt_object_put_nocache(env, cli->cl_mgc_configs_dir);
cli->cl_mgc_configs_dir = NULL;
local_oid_storage_fini(env, cli->cl_mgc_los);
cli->cl_mgc_configs_dir = NULL;
local_oid_storage_fini(env, cli->cl_mgc_los);
GOTO(out_root, rc = PTR_ERR(o));
if (!dt_try_as_dir(env, o)) {
GOTO(out_root, rc = PTR_ERR(o));
if (!dt_try_as_dir(env, o)) {
- lu_object_put(env, &o->do_lu);
GOTO(out_root, rc = -ENOTDIR);
}
GOTO(out_root, rc = -ENOTDIR);
}
nm_config_file_obj,
&dt_nodemap_features);
if (rc < 0) {
nm_config_file_obj,
&dt_nodemap_features);
if (rc < 0) {
- lu_object_put(env, &nm_config_file_obj->do_lu);
+ dt_object_put(env, nm_config_file_obj);
GOTO(out_configs, rc);
}
}
nm_config_file = nm_config_file_register_mgs(env, nm_config_file_obj,
mgs->mgs_los);
GOTO(out_configs, rc);
}
}
nm_config_file = nm_config_file_register_mgs(env, nm_config_file_obj,
mgs->mgs_los);
- lu_object_put(env, &nm_config_file_obj->do_lu);
+ dt_object_put(env, nm_config_file_obj);
if (IS_ERR(nm_config_file)) {
CERROR("%s: error loading nodemap config file, file must be "
"removed via ldiskfs: rc = %ld\n",
if (IS_ERR(nm_config_file)) {
CERROR("%s: error loading nodemap config file, file must be "
"removed via ldiskfs: rc = %ld\n",
}
out_configs:
if (rc < 0) {
}
out_configs:
if (rc < 0) {
- lu_object_put(env, &mgs->mgs_configs_dir->do_lu);
+ dt_object_put(env, mgs->mgs_configs_dir);
mgs->mgs_configs_dir = NULL;
}
out_root:
mgs->mgs_configs_dir = NULL;
}
out_root:
- lu_object_put(env, &root->do_lu);
+ dt_object_put(env, root);
out_los:
if (rc) {
local_oid_storage_fini(env, mgs->mgs_los);
out_los:
if (rc) {
local_oid_storage_fini(env, mgs->mgs_los);
int mgs_fs_cleanup(const struct lu_env *env, struct mgs_device *mgs)
{
if (mgs->mgs_configs_dir) {
int mgs_fs_cleanup(const struct lu_env *env, struct mgs_device *mgs)
{
if (mgs->mgs_configs_dir) {
- lu_object_put(env, &mgs->mgs_configs_dir->do_lu);
+ dt_object_put(env, mgs->mgs_configs_dir);
mgs->mgs_configs_dir = NULL;
}
if (mgs->mgs_nidtbl_dir) {
mgs->mgs_configs_dir = NULL;
}
if (mgs->mgs_nidtbl_dir) {
- lu_object_put(env, &mgs->mgs_nidtbl_dir->do_lu);
+ dt_object_put(env, mgs->mgs_nidtbl_dir);
mgs->mgs_nidtbl_dir = NULL;
}
if (mgs->mgs_obd->u.obt.obt_nodemap_config_file != NULL) {
mgs->mgs_nidtbl_dir = NULL;
}
if (mgs->mgs_obd->u.obt.obt_nodemap_config_file != NULL) {
out:
dt_trans_stop(env, mgs->mgs_bottom, th);
out_put:
out:
dt_trans_stop(env, mgs->mgs_bottom, th);
out_put:
- lu_object_put(env, &fsdb->do_lu);
+ dt_object_put(env, fsdb);
CERROR("%s: read version file %s error %d\n",
mgs->mgs_obd->obd_name, tbl->mn_fsdb->fsdb_name, rc);
}
CERROR("%s: read version file %s error %d\n",
mgs->mgs_obd->obd_name, tbl->mn_fsdb->fsdb_name, rc);
}
- lu_object_put(env, &fsdb->do_lu);
+ dt_object_put(env, fsdb);
/**
* find an object named \a entry in given \a dfh->dfh_o directory.
*/
/**
* find an object named \a entry in given \a dfh->dfh_o directory.
*/
-static int dt_find_entry(const struct lu_env *env, const char *entry, void *data)
+static int dt_find_entry(const struct lu_env *env, const char *entry,
+ void *data)
- struct dt_find_hint *dfh = data;
- struct dt_device *dt = dfh->dfh_dt;
- struct lu_fid *fid = dfh->dfh_fid;
- struct dt_object *obj = dfh->dfh_o;
- int result;
-
- result = dt_lookup_dir(env, obj, entry, fid);
- lu_object_put(env, &obj->do_lu);
- if (result == 0) {
- obj = dt_locate(env, dt, fid);
- if (IS_ERR(obj))
- result = PTR_ERR(obj);
- }
- dfh->dfh_o = obj;
- return result;
+ struct dt_find_hint *dfh = data;
+ struct dt_device *dt = dfh->dfh_dt;
+ struct lu_fid *fid = dfh->dfh_fid;
+ struct dt_object *obj = dfh->dfh_o;
+ int rc;
+
+ rc = dt_lookup_dir(env, obj, entry, fid);
+ dt_object_put(env, obj);
+ if (rc == 0) {
+ obj = dt_locate(env, dt, fid);
+ if (IS_ERR(obj))
+ rc = PTR_ERR(obj);
+ }
+ dfh->dfh_o = obj;
+
+ return rc;
* \param dt dt device
* \param fid on success, object fid is stored in *fid
*/
* \param dt dt device
* \param fid on success, object fid is stored in *fid
*/
-struct dt_object *dt_store_open(const struct lu_env *env,
- struct dt_device *dt,
- const char *dirname,
- const char *filename,
- struct lu_fid *fid)
+struct dt_object *dt_store_open(const struct lu_env *env, struct dt_device *dt,
+ const char *dirname, const char *filename,
+ struct lu_fid *fid)
- struct dt_object *file;
- struct dt_object *dir;
-
- dir = dt_store_resolve(env, dt, dirname, fid);
- if (!IS_ERR(dir)) {
- file = dt_reg_open(env, dt, dir,
- filename, fid);
- lu_object_put(env, &dir->do_lu);
- } else {
- file = dir;
- }
- return file;
+ struct dt_object *file;
+ struct dt_object *dir;
+
+ dir = dt_store_resolve(env, dt, dirname, fid);
+ if (!IS_ERR(dir)) {
+ file = dt_reg_open(env, dt, dir, filename, fid);
+ dt_object_put(env, dir);
+ } else {
+ file = dir;
+ }
+
+ return file;
}
struct dt_object *dt_find_or_create(const struct lu_env *env,
}
struct dt_object *dt_find_or_create(const struct lu_env *env,
GOTO(unlock, rc);
LASSERT(dt_object_exists(dto));
unlock:
GOTO(unlock, rc);
LASSERT(dt_object_exists(dto));
unlock:
- dt_write_unlock(env, dto);
+ dt_write_unlock(env, dto);
- dt_trans_stop(env, dt, th);
+ dt_trans_stop(env, dt, th);
- if (rc) {
- lu_object_put(env, &dto->do_lu);
- RETURN(ERR_PTR(rc));
- }
- RETURN(dto);
+ if (rc) {
+ dt_object_put(env, dto);
+ dto = ERR_PTR(rc);
+ }
+
+ RETURN(dto);
}
EXPORT_SYMBOL(dt_find_or_create);
}
EXPORT_SYMBOL(dt_find_or_create);
- lu_object_put(env, &obj->do_lu);
+ dt_object_put(env, obj);
return rc;
}
EXPORT_SYMBOL(dt_index_read);
return rc;
}
EXPORT_SYMBOL(dt_index_read);
dir = dt_locate(env, dt, &dti->dti_fid);
if (!IS_ERR(dir) && !dt_try_as_dir(env, dir)) {
dir = dt_locate(env, dt, &dti->dti_fid);
if (!IS_ERR(dir) && !dt_try_as_dir(env, dir)) {
- lu_object_put(env, &dir->do_lu);
+ dt_object_put(env, dir);
return ERR_PTR(-ENOTDIR);
}
} else {
return ERR_PTR(-ENOTDIR);
}
} else {
dt_read_lock(env, llog_dir, 0);
rc = dt_lookup_dir(env, llog_dir, name, &lgi->lgi_fid);
dt_read_unlock(env, llog_dir);
dt_read_lock(env, llog_dir, 0);
rc = dt_lookup_dir(env, llog_dir, name, &lgi->lgi_fid);
dt_read_unlock(env, llog_dir);
- lu_object_put(env, &llog_dir->do_lu);
+ dt_object_put(env, llog_dir);
if (rc == -ENOENT && open_param == LLOG_OPEN_NEW) {
/* generate fid for new llog */
rc = local_object_fid_generate(env, los,
if (rc == -ENOENT && open_param == LLOG_OPEN_NEW) {
/* generate fid for new llog */
rc = local_object_fid_generate(env, los,
", skipping\n",
o->do_lu.lo_dev->ld_obd->obd_name,
PFID(lu_object_fid(&o->do_lu)));
", skipping\n",
o->do_lu.lo_dev->ld_obd->obd_name,
PFID(lu_object_fid(&o->do_lu)));
- lu_object_put(env, &o->do_lu);
/* just skip this llog ID, we shouldn't delete it because we
* don't know exactly what is its purpose and state. */
goto generate;
/* just skip this llog ID, we shouldn't delete it because we
* don't know exactly what is its purpose and state. */
goto generate;
- lu_object_put(env, &o->do_lu);
out_name:
if (handle->lgh_name != NULL)
OBD_FREE(handle->lgh_name, strlen(name) + 1);
out_name:
if (handle->lgh_name != NULL)
OBD_FREE(handle->lgh_name, strlen(name) + 1);
RETURN(dir);
if (!dt_try_as_dir(env, dir)) {
RETURN(dir);
if (!dt_try_as_dir(env, dir)) {
- lu_object_put(env, &dir->do_lu);
+ dt_object_put(env, dir);
RETURN(ERR_PTR(-ENOTDIR));
}
RETURN(ERR_PTR(-ENOTDIR));
}
}
dt_write_unlock(env, dir);
}
dt_write_unlock(env, dir);
- lu_object_put(env, &dir->do_lu);
+ dt_object_put(env, dir);
rc = dt_declare_insert(env, llog_dir,
(struct dt_rec *)rec,
(struct dt_key *)res->lgh_name, th);
rc = dt_declare_insert(env, llog_dir,
(struct dt_rec *)rec,
(struct dt_key *)res->lgh_name, th);
- lu_object_put(env, &llog_dir->do_lu);
+ dt_object_put(env, llog_dir);
if (rc)
CERROR("%s: can't declare named llog %s: rc = %d\n",
o->do_lu.lo_dev->ld_obd->obd_name,
if (rc)
CERROR("%s: can't declare named llog %s: rc = %d\n",
o->do_lu.lo_dev->ld_obd->obd_name,
(struct dt_key *)res->lgh_name,
th, 1);
dt_read_unlock(env, llog_dir);
(struct dt_key *)res->lgh_name,
th, 1);
dt_read_unlock(env, llog_dir);
- lu_object_put(env, &llog_dir->do_lu);
+ dt_object_put(env, llog_dir);
if (rc)
CERROR("%s: can't create named llog %s: rc = %d\n",
o->do_lu.lo_dev->ld_obd->obd_name,
if (rc)
CERROR("%s: can't create named llog %s: rc = %d\n",
o->do_lu.lo_dev->ld_obd->obd_name,
if (handle->lgh_ctxt->loc_flags & LLOG_CTXT_FLAG_NORMAL_FID) {
/* Remove the object from the cache, otherwise it may
* hold LOD being released during cleanup process */
if (handle->lgh_ctxt->loc_flags & LLOG_CTXT_FLAG_NORMAL_FID) {
/* Remove the object from the cache, otherwise it may
* hold LOD being released during cleanup process */
- lu_object_put_nocache(env, &handle->lgh_obj->do_lu);
+ dt_object_put_nocache(env, handle->lgh_obj);
LASSERT(handle->private_data == NULL);
RETURN(rc);
} else {
LASSERT(handle->private_data == NULL);
RETURN(rc);
} else {
- lu_object_put(env, &handle->lgh_obj->do_lu);
+ dt_object_put(env, handle->lgh_obj);
}
los = handle->private_data;
LASSERT(los);
}
los = handle->private_data;
LASSERT(los);
}
dt_write_unlock(env, dir);
}
dt_write_unlock(env, dir);
- lu_object_put(env, &dir->do_lu);
+ dt_object_put(env, dir);
out_put:
if (!(IS_ERR_OR_NULL(llog_dir)))
out_put:
if (!(IS_ERR_OR_NULL(llog_dir)))
- lu_object_put(env, &llog_dir->do_lu);
+ dt_object_put(env, llog_dir);
out_unlock:
dt_write_unlock(env, o);
if (!(IS_ERR_OR_NULL(llog_dir)))
out_unlock:
dt_write_unlock(env, o);
if (!(IS_ERR_OR_NULL(llog_dir)))
- lu_object_put(env, &llog_dir->do_lu);
+ dt_object_put(env, llog_dir);
- lu_object_put(env, &o->do_lu);
RETURN(rc);
}
EXPORT_SYMBOL(llog_osd_get_cat_list);
RETURN(rc);
}
EXPORT_SYMBOL(llog_osd_get_cat_list);
out_trans:
dt_trans_stop(env, d, th);
out:
out_trans:
dt_trans_stop(env, d, th);
out:
- lu_object_put(env, &o->do_lu);
RETURN(rc);
}
EXPORT_SYMBOL(llog_osd_put_cat_list);
RETURN(rc);
}
EXPORT_SYMBOL(llog_osd_put_cat_list);
llog_ctxt_put(ctxt);
if (obj != NULL)
llog_ctxt_put(ctxt);
if (obj != NULL)
- lu_object_put(env, &obj->do_lu);
+ dt_object_put(env, obj);
dt_trans_stop(env, ls->ls_osd, th);
out:
if (rc) {
dt_trans_stop(env, ls->ls_osd, th);
out:
if (rc) {
- lu_object_put_nocache(env, &dto->do_lu);
+ dt_object_put_nocache(env, dto);
dto = ERR_PTR(rc);
}
RETURN(dto);
dto = ERR_PTR(rc);
}
RETURN(dto);
* have to open the object in other device stack */
if (!IS_ERR(dto)) {
dti->dti_fid = dto->do_lu.lo_header->loh_fid;
* have to open the object in other device stack */
if (!IS_ERR(dto)) {
dti->dti_fid = dto->do_lu.lo_header->loh_fid;
- lu_object_put_nocache(env, &dto->do_lu);
+ dt_object_put_nocache(env, dto);
dto = dt_locate(env, dt, &dti->dti_fid);
}
ls_device_put(env, ls);
dto = dt_locate(env, dt, &dti->dti_fid);
}
ls_device_put(env, ls);
* have to open the object in other device stack */
if (!IS_ERR(dto)) {
dti->dti_fid = dto->do_lu.lo_header->loh_fid;
* have to open the object in other device stack */
if (!IS_ERR(dto)) {
dti->dti_fid = dto->do_lu.lo_header->loh_fid;
- lu_object_put_nocache(env, &dto->do_lu);
+ dt_object_put_nocache(env, dto);
dto = dt_locate(env, dt, &dti->dti_fid);
}
ls_device_put(env, ls);
dto = dt_locate(env, dt, &dti->dti_fid);
}
ls_device_put(env, ls);
stop:
dt_trans_stop(env, dt, th);
out:
stop:
dt_trans_stop(env, dt, th);
out:
- lu_object_put_nocache(env, &dto->do_lu);
+ dt_object_put_nocache(env, dto);
return rc;
}
EXPORT_SYMBOL(local_object_unlink);
return rc;
}
EXPORT_SYMBOL(local_object_unlink);
snprintf(dti->dti_buf, sizeof(dti->dti_buf), "seq-%#llx-lastid",
lastid_seq);
rc = dt_lookup_dir(env, root, dti->dti_buf, &dti->dti_fid);
snprintf(dti->dti_buf, sizeof(dti->dti_buf), "seq-%#llx-lastid",
lastid_seq);
rc = dt_lookup_dir(env, root, dti->dti_buf, &dti->dti_fid);
- lu_object_put_nocache(env, &root->do_lu);
+ dt_object_put_nocache(env, root);
if (rc == -ENOENT) {
/* old llog lastid accessed by FID only */
if (lastid_seq != FID_SEQ_LLOG)
if (rc == -ENOENT) {
/* old llog lastid accessed by FID only */
if (lastid_seq != FID_SEQ_LLOG)
return PTR_ERR(o);
if (!dt_object_exists(o)) {
return PTR_ERR(o);
if (!dt_object_exists(o)) {
- lu_object_put_nocache(env, &o->do_lu);
+ dt_object_put_nocache(env, o);
return 0;
}
CDEBUG(D_INFO, "Found old llog lastid file\n");
return 0;
}
CDEBUG(D_INFO, "Found old llog lastid file\n");
CERROR("%s: failed to read seq-%#llx-lastid: rc = %d\n",
o->do_lu.lo_dev->ld_obd->obd_name, lastid_seq, rc);
}
CERROR("%s: failed to read seq-%#llx-lastid: rc = %d\n",
o->do_lu.lo_dev->ld_obd->obd_name, lastid_seq, rc);
}
- lu_object_put_nocache(env, &o->do_lu);
+ dt_object_put_nocache(env, o);
if (rc == 0)
*first_oid = le32_to_cpu(losd.lso_next_oid);
return rc;
if (rc == 0)
*first_oid = le32_to_cpu(losd.lso_next_oid);
return rc;
OBD_FREE_PTR(*los);
*los = NULL;
if (o != NULL && !IS_ERR(o))
OBD_FREE_PTR(*los);
*los = NULL;
if (o != NULL && !IS_ERR(o))
- lu_object_put_nocache(env, &o->do_lu);
+ dt_object_put_nocache(env, o);
} else {
(*los)->los_seq = fid_seq(first_fid);
(*los)->los_last_oid = le64_to_cpu(lastid);
} else {
(*los)->los_seq = fid_seq(first_fid);
(*los)->los_last_oid = le64_to_cpu(lastid);
- lu_object_put_nocache(env, &los->los_obj->do_lu);
+ dt_object_put_nocache(env, los->los_obj);
list_del(&los->los_list);
OBD_FREE_PTR(los);
mutex_unlock(&ls->ls_los_mutex);
list_del(&los->los_list);
OBD_FREE_PTR(los);
mutex_unlock(&ls->ls_los_mutex);
*fid = *lu_object_fid(&dto->do_lu);
/* since stack is not fully set up the local_storage uses own stack
* and we should drop its object from cache */
*fid = *lu_object_fid(&dto->do_lu);
/* since stack is not fully set up the local_storage uses own stack
* and we should drop its object from cache */
- lu_object_put_nocache(env, &dto->do_lu);
+ dt_object_put_nocache(env, dto);
- lu_object_put(env, &parent->do_lu);
+ dt_object_put(env, parent);
if (atomic_dec_and_test(&oseq->os_refc)) {
LASSERT(list_empty(&oseq->os_list));
LASSERT(oseq->os_lastid_obj != NULL);
if (atomic_dec_and_test(&oseq->os_refc)) {
LASSERT(list_empty(&oseq->os_list));
LASSERT(oseq->os_lastid_obj != NULL);
- lu_object_put(env, &oseq->os_lastid_obj->do_lu);
+ dt_object_put(env, oseq->os_lastid_obj);
ofd_name(ofd), rc);
if (ofd->ofd_health_check_file) {
ofd_name(ofd), rc);
if (ofd->ofd_health_check_file) {
- lu_object_put(env, &ofd->ofd_health_check_file->do_lu);
+ dt_object_put(env, ofd->ofd_health_check_file);
ofd->ofd_health_check_file = NULL;
}
ofd->ofd_health_check_file = NULL;
}
int ofd_precreate_objects(const struct lu_env *env, struct ofd_device *ofd,
u64 id, struct ofd_seq *oseq, int nr, int sync);
int ofd_precreate_objects(const struct lu_env *env, struct ofd_device *ofd,
u64 id, struct ofd_seq *oseq, int nr, int sync);
-void ofd_object_put(const struct lu_env *env, struct ofd_object *fo);
+static inline void ofd_object_put(const struct lu_env *env,
+ struct ofd_object *fo)
+{
+ dt_object_put(env, &fo->ofo_obj);
+}
int ofd_attr_set(const struct lu_env *env, struct ofd_object *fo,
struct lu_attr *la, struct filter_fid *ff);
int ofd_object_punch(const struct lu_env *env, struct ofd_object *fo,
int ofd_attr_set(const struct lu_env *env, struct ofd_object *fo,
struct lu_attr *la, struct filter_fid *ff);
int ofd_object_punch(const struct lu_env *env, struct ofd_object *fo,
fo->ofo_pfid_checking = 0;
ofd_write_unlock(env, fo);
fo->ofo_pfid_checking = 0;
ofd_write_unlock(env, fo);
- lu_object_put(env, &fo->ofo_obj.do_lu);
+ ofd_object_put(env, fo);
fo->ofo_pfid_checking = 0;
ofd_write_unlock(&env, fo);
fo->ofo_pfid_checking = 0;
ofd_write_unlock(&env, fo);
- lu_object_put(&env, &fo->ofo_obj.do_lu);
+ ofd_object_put(&env, fo);
OBD_FREE_PTR(oii);
spin_lock(&ofd->ofd_inconsistency_lock);
}
OBD_FREE_PTR(oii);
spin_lock(&ofd->ofd_inconsistency_lock);
}
- * Put OFD object reference.
- *
- * \param[in] env execution environment
- * \param[in] fo OFD object
- */
-void ofd_object_put(const struct lu_env *env, struct ofd_object *fo)
-{
- lu_object_put(env, &fo->ofo_obj.do_lu);
-}
-
-/**
* Precreate the given number \a nr of objects in the given sequence \a oseq.
*
* This function precreates new OST objects in the given sequence.
* Precreate the given number \a nr of objects in the given sequence \a oseq.
*
* This function precreates new OST objects in the given sequence.
-/**
- * Put the osd object once done with it.
- *
- * \param obj osd object that needs to be put
- */
-static inline void osd_object_put(const struct lu_env *env,
- struct osd_object *obj)
-{
- lu_object_put(env, &obj->oo_dt.do_lu);
-}
-
static int osd_index_declare_ea_insert(const struct lu_env *env,
struct dt_object *dt,
const struct dt_rec *rec,
static int osd_index_declare_ea_insert(const struct lu_env *env,
struct dt_object *dt,
const struct dt_rec *rec,
/**
* free given Iterator.
*/
/**
* free given Iterator.
*/
static void osd_it_iam_fini(const struct lu_env *env, struct dt_it *di)
{
struct osd_it_iam *it = (struct osd_it_iam *)di;
static void osd_it_iam_fini(const struct lu_env *env, struct dt_it *di)
{
struct osd_it_iam *it = (struct osd_it_iam *)di;
iam_it_fini(&it->oi_it);
osd_ipd_put(env, &obj->oo_dir->od_container, it->oi_ipd);
iam_it_fini(&it->oi_it);
osd_ipd_put(env, &obj->oo_dir->od_container, it->oi_ipd);
- lu_object_put(env, &obj->oo_dt.do_lu);
+ osd_object_put(env, obj);
ENTRY;
oie->oie_file.f_op->release(inode, &oie->oie_file);
ENTRY;
oie->oie_file.f_op->release(inode, &oie->oie_file);
- lu_object_put(env, &obj->oo_dt.do_lu);
+ osd_object_put(env, obj);
if (unlikely(oie->oie_buf != info->oti_it_ea_buf))
OBD_FREE(oie->oie_buf, OSD_IT_EA_BUFSIZE);
else
if (unlikely(oie->oie_buf != info->oti_it_ea_buf))
OBD_FREE(oie->oie_buf, OSD_IT_EA_BUFSIZE);
else
return dev->od_mnt->mnt_sb;
}
return dev->od_mnt->mnt_sb;
}
+/**
+ * Put the osd object once done with it.
+ *
+ * \param obj osd object that needs to be put
+ */
+static inline void osd_object_put(const struct lu_env *env,
+ struct osd_object *obj)
+{
+ dt_object_put(env, &obj->oo_dt);
+}
+
static inline int osd_object_is_root(const struct osd_object *obj)
{
return osd_sb(osd_obj2dev(obj))->s_root->d_inode == obj->oo_inode;
static inline int osd_object_is_root(const struct osd_object *obj)
{
return osd_sb(osd_obj2dev(obj))->s_root->d_inode == obj->oo_inode;
LASSERT(PageLocked(lnb[i].lnb_page));
unlock_page(lnb[i].lnb_page);
put_page(lnb[i].lnb_page);
LASSERT(PageLocked(lnb[i].lnb_page));
unlock_page(lnb[i].lnb_page);
put_page(lnb[i].lnb_page);
- lu_object_put(env, &dt->do_lu);
+ dt_object_put(env, dt);
lnb[i].lnb_page = NULL;
}
lnb[i].lnb_page = NULL;
}
struct osd_quota_leaf *leaf, *tmp;
ENTRY;
struct osd_quota_leaf *leaf, *tmp;
ENTRY;
- lu_object_put(env, &it->oiq_obj->oo_dt.do_lu);
+ osd_object_put(env, it->oiq_obj);
list_for_each_entry_safe(leaf, tmp, &it->oiq_list, oql_link) {
list_del_init(&leaf->oql_link);
list_for_each_entry_safe(leaf, tmp, &it->oiq_list, oql_link) {
list_del_init(&leaf->oql_link);
CERROR("%s: Old admin file %s doesn't exist, but is "
"still referenced in parent directory.\n",
osd->od_svname, fname);
CERROR("%s: Old admin file %s doesn't exist, but is "
"still referenced in parent directory.\n",
osd->od_svname, fname);
- lu_object_put(env, &admin->do_lu);
+ dt_object_put(env, admin);
GOTO(out, rc = -ENOENT);
}
GOTO(out, rc = -ENOENT);
}
"convert them into new format.\n",
osd->od_svname, fname);
"convert them into new format.\n",
osd->od_svname, fname);
- lu_object_put(env, &admin->do_lu);
+ dt_object_put(env, admin);
GOTO(out, rc = -EINVAL);
}
out:
if (parent && !IS_ERR(parent))
GOTO(out, rc = -EINVAL);
}
out:
if (parent && !IS_ERR(parent))
- lu_object_put(env, &parent->do_lu);
- lu_object_put(env, &root->do_lu);
+ dt_object_put(env, parent);
+ dt_object_put(env, root);
obj = it->ozi_obj;
osd_zap_cursor_fini(it->ozi_zc);
obj = it->ozi_obj;
osd_zap_cursor_fini(it->ozi_zc);
- lu_object_put(env, &obj->oo_dt.do_lu);
+ osd_object_put(env, obj);
OBD_SLAB_FREE_PTR(it, osd_zapit_cachep);
EXIT;
OBD_SLAB_FREE_PTR(it, osd_zapit_cachep);
EXIT;
-/**
- * Put the osd object once done with it.
- *
- * \param obj osd object that needs to be put
- */
-static inline void osd_object_put(const struct lu_env *env,
- struct osd_object *obj)
-{
- lu_object_put(env, &obj->oo_dt.do_lu);
-}
-
static int osd_seq_exists(const struct lu_env *env, struct osd_device *osd,
u64 seq)
{
static int osd_seq_exists(const struct lu_env *env, struct osd_device *osd,
u64 seq)
{
+/**
+ * Put the osd object once done with it.
+ *
+ * \param obj osd object that needs to be put
+ */
+static inline void osd_object_put(const struct lu_env *env,
+ struct osd_object *obj)
+{
+ dt_object_put(env, &obj->oo_dt);
+}
+
static inline int osd_object_invariant(const struct lu_object *l)
{
return osd_invariant(osd_obj(l));
static inline int osd_object_invariant(const struct lu_object *l)
{
return osd_invariant(osd_obj(l));
ENTRY;
osd_zap_cursor_fini(it->oiq_zc);
ENTRY;
osd_zap_cursor_fini(it->oiq_zc);
- lu_object_put(env, &it->oiq_obj->oo_dt.do_lu);
+ osd_object_put(env, it->oiq_obj);
if (rc) {
CERROR("%s: can't be initialized: rc = %d\n",
osp->opd_obd->obd_name, rc);
if (rc) {
CERROR("%s: can't be initialized: rc = %d\n",
osp->opd_obd->obd_name, rc);
- lu_object_put(env, &dto->do_lu);
+ dt_object_put(env, dto);
RETURN(ERR_PTR(rc));
}
RETURN(dto);
RETURN(ERR_PTR(rc));
}
RETURN(dto);
/* object will be released in device cleanup path */
CERROR("%s: can't initialize lov_objid: rc = %d\n",
osp->opd_obd->obd_name, rc);
/* object will be released in device cleanup path */
CERROR("%s: can't initialize lov_objid: rc = %d\n",
osp->opd_obd->obd_name, rc);
- lu_object_put(env, &dto->do_lu);
+ dt_object_put(env, dto);
osp->opd_last_used_oid_file = NULL;
RETURN(rc);
}
osp->opd_last_used_oid_file = NULL;
RETURN(rc);
}
/* object will be released in device cleanup path */
CERROR("%s: can't initialize lov_seq: rc = %d\n",
osp->opd_obd->obd_name, rc);
/* object will be released in device cleanup path */
CERROR("%s: can't initialize lov_seq: rc = %d\n",
osp->opd_obd->obd_name, rc);
- lu_object_put(env, &dto->do_lu);
+ dt_object_put(env, dto);
osp->opd_last_used_seq_file = NULL;
RETURN(rc);
}
osp->opd_last_used_seq_file = NULL;
RETURN(rc);
}
out:
if (rc != 0) {
if (osp->opd_last_used_oid_file != NULL) {
out:
if (rc != 0) {
if (osp->opd_last_used_oid_file != NULL) {
- lu_object_put(env, &osp->opd_last_used_oid_file->do_lu);
+ dt_object_put(env, osp->opd_last_used_oid_file);
osp->opd_last_used_oid_file = NULL;
}
if (osp->opd_last_used_seq_file != NULL) {
osp->opd_last_used_oid_file = NULL;
}
if (osp->opd_last_used_seq_file != NULL) {
- lu_object_put(env, &osp->opd_last_used_seq_file->do_lu);
+ dt_object_put(env, osp->opd_last_used_seq_file);
osp->opd_last_used_seq_file = NULL;
}
}
osp->opd_last_used_seq_file = NULL;
}
}
{
/* release last_used file */
if (osp->opd_last_used_oid_file != NULL) {
{
/* release last_used file */
if (osp->opd_last_used_oid_file != NULL) {
- lu_object_put(env, &osp->opd_last_used_oid_file->do_lu);
+ dt_object_put(env, osp->opd_last_used_oid_file);
osp->opd_last_used_oid_file = NULL;
}
if (osp->opd_last_used_seq_file != NULL) {
osp->opd_last_used_oid_file = NULL;
}
if (osp->opd_last_used_seq_file != NULL) {
- lu_object_put(env, &osp->opd_last_used_seq_file->do_lu);
+ dt_object_put(env, osp->opd_last_used_seq_file);
osp->opd_last_used_seq_file = NULL;
}
}
osp->opd_last_used_seq_file = NULL;
}
}
list_del_init(&obj->opo_invalidate_cb_list);
spin_unlock(&obj->opo_lock);
list_del_init(&obj->opo_invalidate_cb_list);
spin_unlock(&obj->opo_lock);
- lu_object_put(env, &obj->opo_obj.do_lu);
+ dt_object_put(env, &obj->opo_obj);
list_del_init(&obj->opo_invalidate_cb_list);
spin_unlock(&obj->opo_lock);
list_del_init(&obj->opo_invalidate_cb_list);
spin_unlock(&obj->opo_lock);
- lu_object_put(env, &obj->opo_obj.do_lu);
+ dt_object_put(env, &obj->opo_obj);
* rewrite the config
*/
if (rc < 0) {
* rewrite the config
*/
if (rc < 0) {
- lu_object_put(env, &nm_obj->do_lu);
+ dt_object_put(env, nm_obj);
if (create_new == NCFC_CREATE_NEW)
GOTO(out_root, nm_obj = ERR_PTR(rc));
if (create_new == NCFC_CREATE_NEW)
GOTO(out_root, nm_obj = ERR_PTR(rc));
- lu_object_put(env, &root_obj->do_lu);
+ dt_object_put(env, root_obj);
mutex_unlock(&active_config_lock);
if (rc < 0) {
mutex_unlock(&active_config_lock);
if (rc < 0) {
- lu_object_put(env, &o->do_lu);
struct dt_object *o;
/* put current config file so save conf can rewrite it */
struct dt_object *o;
/* put current config file so save conf can rewrite it */
- lu_object_put_nocache(&env, &ncf->ncf_obj->do_lu);
+ dt_object_put_nocache(&env, ncf->ncf_obj);
ncf->ncf_obj = NULL;
o = nodemap_save_config_cache(&env, dev, ncf->ncf_los);
ncf->ncf_obj = NULL;
o = nodemap_save_config_cache(&env, dev, ncf->ncf_los);
nodemap_mgs_ncf = NULL;
if (ncf->ncf_obj)
nodemap_mgs_ncf = NULL;
if (ncf->ncf_obj)
- lu_object_put(env, &ncf->ncf_obj->do_lu);
+ dt_object_put(env, ncf->ncf_obj);
mutex_unlock(&ncf_list_lock);
if (ncf->ncf_obj)
mutex_unlock(&ncf_list_lock);
if (ncf->ncf_obj)
- lu_object_put(env, &ncf->ncf_obj->do_lu);
+ dt_object_put(env, ncf->ncf_obj);
/* local_oid_storage_fini() will finalize the local storage device,
* we have to open the object in another device stack */
qti->qti_fid = obj->do_lu.lo_header->loh_fid;
/* local_oid_storage_fini() will finalize the local storage device,
* we have to open the object in another device stack */
qti->qti_fid = obj->do_lu.lo_header->loh_fid;
- lu_object_put_nocache(env, &obj->do_lu);
+ dt_object_put_nocache(env, obj);
obj = dt_locate(env, dev, &qti->qti_fid);
if (IS_ERR(obj))
GOTO(out, obj);
obj = dt_locate(env, dev, &qti->qti_fid);
if (IS_ERR(obj))
GOTO(out, obj);
/* local_oid_storage_fini() will finalize the local storage device,
* we have to open the object in another device stack */
qti->qti_fid = qt_dir->do_lu.lo_header->loh_fid;
/* local_oid_storage_fini() will finalize the local storage device,
* we have to open the object in another device stack */
qti->qti_fid = qt_dir->do_lu.lo_header->loh_fid;
- lu_object_put_nocache(env, &qt_dir->do_lu);
+ dt_object_put_nocache(env, qt_dir);
qt_dir = dt_locate(env, dev, &qti->qti_fid);
if (IS_ERR(qt_dir))
GOTO(out, rc = PTR_ERR(qt_dir));
qt_dir = dt_locate(env, dev, &qti->qti_fid);
if (IS_ERR(qt_dir))
GOTO(out, rc = PTR_ERR(qt_dir));
EXIT;
out:
if (parent != NULL && !IS_ERR(parent))
EXIT;
out:
if (parent != NULL && !IS_ERR(parent))
- lu_object_put(env, &parent->do_lu);
+ dt_object_put(env, parent);
if (los != NULL)
local_oid_storage_fini(env, los);
if (rc) {
if (qt_dir != NULL && !IS_ERR(qt_dir))
if (los != NULL)
local_oid_storage_fini(env, los);
if (rc) {
if (qt_dir != NULL && !IS_ERR(qt_dir))
- lu_object_put(env, &qt_dir->do_lu);
+ dt_object_put(env, qt_dir);
qt_dir = ERR_PTR(rc);
}
return qt_dir;
qt_dir = ERR_PTR(rc);
}
return qt_dir;
CERROR("%s: failed to setup index operations for "DFID
" rc:%d\n", dev->dd_lu_dev.ld_obd->obd_name,
PFID(lu_object_fid(&glb_idx->do_lu)), rc);
CERROR("%s: failed to setup index operations for "DFID
" rc:%d\n", dev->dd_lu_dev.ld_obd->obd_name,
PFID(lu_object_fid(&glb_idx->do_lu)), rc);
- lu_object_put(env, &glb_idx->do_lu);
+ dt_object_put(env, glb_idx);
glb_idx = ERR_PTR(rc);
}
}
glb_idx = ERR_PTR(rc);
}
}
CERROR("%s: failed to setup slave index operations for "
"%s, rc:%d\n", dev->dd_lu_dev.ld_obd->obd_name,
obd_uuid2str(uuid), rc);
CERROR("%s: failed to setup slave index operations for "
"%s, rc:%d\n", dev->dd_lu_dev.ld_obd->obd_name,
obd_uuid2str(uuid), rc);
- lu_object_put(env, &slv_idx->do_lu);
+ dt_object_put(env, slv_idx);
slv_idx = ERR_PTR(rc);
}
}
slv_idx = ERR_PTR(rc);
}
}
CERROR("%s: failed to setup index operations for "DFID
" rc:%d\n", dev->dd_lu_dev.ld_obd->obd_name,
PFID(lu_object_fid(&slv_idx->do_lu)), rc);
CERROR("%s: failed to setup index operations for "DFID
" rc:%d\n", dev->dd_lu_dev.ld_obd->obd_name,
PFID(lu_object_fid(&slv_idx->do_lu)), rc);
- lu_object_put(env, &slv_idx->do_lu);
+ dt_object_put(env, slv_idx);
slv_idx = ERR_PTR(rc);
}
}
slv_idx = ERR_PTR(rc);
}
}
RETURN(obj);
if (!dt_object_exists(obj)) {
RETURN(obj);
if (!dt_object_exists(obj)) {
- lu_object_put(env, &obj->do_lu);
+ dt_object_put(env, obj);
RETURN(ERR_PTR(-ENOENT));
}
RETURN(ERR_PTR(-ENOENT));
}
" acct object rc:%d\n",
dev->dd_lu_dev.ld_obd->obd_name,
QTYPE_NAME(type), rc);
" acct object rc:%d\n",
dev->dd_lu_dev.ld_obd->obd_name,
QTYPE_NAME(type), rc);
- lu_object_put(env, &obj->do_lu);
+ dt_object_put(env, obj);
RETURN(obj);
if (!dt_object_exists(obj)) {
RETURN(obj);
if (!dt_object_exists(obj)) {
- lu_object_put(env, &obj->do_lu);
+ dt_object_put(env, obj);
RETURN(ERR_PTR(-ENOENT));
}
RETURN(ERR_PTR(-ENOENT));
}
" slave index object rc:%d\n",
dev->dd_lu_dev.ld_obd->obd_name,
QTYPE_NAME(type), rc);
" slave index object rc:%d\n",
dev->dd_lu_dev.ld_obd->obd_name,
QTYPE_NAME(type), rc);
- lu_object_put(env, &obj->do_lu);
+ dt_object_put(env, obj);
dqblk->dqb_curinodes = qti->qti_acct_rec.ispace;
dqblk->dqb_valid = QIF_USAGE;
dqblk->dqb_curinodes = qti->qti_acct_rec.ispace;
dqblk->dqb_valid = QIF_USAGE;
- lu_object_put(env, &obj->do_lu);
+ dt_object_put(env, obj);
/* Step 2: collect enforcement information */
/* Step 2: collect enforcement information */
- lu_object_put(env, &obj->do_lu);
- return rc;
+ dt_object_put(env, obj);
+ return rc;
}
EXPORT_SYMBOL(lquotactl_slv);
}
EXPORT_SYMBOL(lquotactl_slv);
/* initialize on-disk indexes associated with each pool */
rc = qmt_pool_prepare(env, qmt, qmt_root);
/* initialize on-disk indexes associated with each pool */
rc = qmt_pool_prepare(env, qmt, qmt_root);
- lu_object_put(env, &qmt_root->do_lu);
+ dt_object_put(env, qmt_root);
dt_trans_stop(env, qmt->qmt_child, th);
if (slv_obj != NULL && !IS_ERR(slv_obj))
dt_trans_stop(env, qmt->qmt_child, th);
if (slv_obj != NULL && !IS_ERR(slv_obj))
- lu_object_put(env, &slv_obj->do_lu);
+ dt_object_put(env, slv_obj);
if ((req_is_acq(qb_flags) || req_is_preacq(qb_flags)) &&
OBD_FAIL_CHECK(OBD_FAIL_QUOTA_EDQUOT)) {
if ((req_is_acq(qb_flags) || req_is_preacq(qb_flags)) &&
OBD_FAIL_CHECK(OBD_FAIL_QUOTA_EDQUOT)) {
if (IS_ERR(obj))
GOTO(out, rc = PTR_ERR(obj));
if (!dt_object_exists(obj)) {
if (IS_ERR(obj))
GOTO(out, rc = PTR_ERR(obj));
if (!dt_object_exists(obj)) {
- lu_object_put(env, &obj->do_lu);
+ dt_object_put(env, obj);
GOTO(out, rc = -ENOENT);
}
GOTO(out, rc = -ENOENT);
}
}
/* release object reference */
}
/* release object reference */
- lu_object_put(env, &obj->do_lu);
+ dt_object_put(env, obj);
lu_env_fini(env);
OBD_FREE_PTR(env);
}
lu_env_fini(env);
OBD_FREE_PTR(env);
}
/* release reference to global index */
if (pool->qpi_glb_obj[qtype] != NULL &&
!IS_ERR(pool->qpi_glb_obj[qtype]))
/* release reference to global index */
if (pool->qpi_glb_obj[qtype] != NULL &&
!IS_ERR(pool->qpi_glb_obj[qtype]))
- lu_object_put(env, &pool->qpi_glb_obj[qtype]->do_lu);
+ dt_object_put(env, pool->qpi_glb_obj[qtype]);
}
/* release reference on pool directory */
if (pool->qpi_root != NULL && !IS_ERR(pool->qpi_root))
}
/* release reference on pool directory */
if (pool->qpi_root != NULL && !IS_ERR(pool->qpi_root))
- lu_object_put(env, &pool->qpi_root->do_lu);
+ dt_object_put(env, pool->qpi_root);
/* release reference on the master target */
if (pool->qpi_qmt != NULL) {
/* release reference on the master target */
if (pool->qpi_qmt != NULL) {
/* retrieve slave fid & current object version */
memcpy(slv_fid, lu_object_fid(&slv_obj->do_lu), sizeof(*slv_fid));
*slv_ver = dt_version_get(env, slv_obj);
/* retrieve slave fid & current object version */
memcpy(slv_fid, lu_object_fid(&slv_obj->do_lu), sizeof(*slv_fid));
*slv_ver = dt_version_get(env, slv_obj);
- lu_object_put(env, &slv_obj->do_lu);
+ dt_object_put(env, slv_obj);
if (created)
pool->qpi_slv_nr[qtype]++;
out:
if (created)
pool->qpi_slv_nr[qtype]++;
out:
/* release accounting object */
if (qqi->qqi_acct_obj != NULL && !IS_ERR(qqi->qqi_acct_obj)) {
/* release accounting object */
if (qqi->qqi_acct_obj != NULL && !IS_ERR(qqi->qqi_acct_obj)) {
- lu_object_put(env, &qqi->qqi_acct_obj->do_lu);
+ dt_object_put(env, qqi->qqi_acct_obj);
qqi->qqi_acct_obj = NULL;
}
/* release slv index */
if (qqi->qqi_slv_obj != NULL && !IS_ERR(qqi->qqi_slv_obj)) {
qqi->qqi_acct_obj = NULL;
}
/* release slv index */
if (qqi->qqi_slv_obj != NULL && !IS_ERR(qqi->qqi_slv_obj)) {
- lu_object_put(env, &qqi->qqi_slv_obj->do_lu);
+ dt_object_put(env, qqi->qqi_slv_obj);
qqi->qqi_slv_obj = NULL;
qqi->qqi_slv_ver = 0;
}
/* release global index */
if (qqi->qqi_glb_obj != NULL && !IS_ERR(qqi->qqi_glb_obj)) {
qqi->qqi_slv_obj = NULL;
qqi->qqi_slv_ver = 0;
}
/* release global index */
if (qqi->qqi_glb_obj != NULL && !IS_ERR(qqi->qqi_glb_obj)) {
- lu_object_put(env, &qqi->qqi_glb_obj->do_lu);
+ dt_object_put(env, qqi->qqi_glb_obj);
qqi->qqi_glb_obj = NULL;
qqi->qqi_glb_ver = 0;
}
qqi->qqi_glb_obj = NULL;
qqi->qqi_glb_ver = 0;
}
/* release quota root directory */
if (qsd->qsd_root != NULL) {
/* release quota root directory */
if (qsd->qsd_root != NULL) {
- lu_object_put(env, &qsd->qsd_root->do_lu);
+ dt_object_put(env, qsd->qsd_root);
if (ta->ta_args[i]->exec_fn == out_tx_create_exec)
set_bit(LU_OBJECT_HEARD_BANSHEE,
&obj->do_lu.lo_header->loh_flags);
if (ta->ta_args[i]->exec_fn == out_tx_create_exec)
set_bit(LU_OBJECT_HEARD_BANSHEE,
&obj->do_lu.lo_header->loh_flags);
- lu_object_put(env, &ta->ta_args[i]->object->do_lu);
+ dt_object_put(env, ta->ta_args[i]->object);
ta->ta_args[i]->object = NULL;
}
}
ta->ta_args[i]->object = NULL;
}
}
rc = h->th_act(tsi);
next:
reply_index++;
rc = h->th_act(tsi);
next:
reply_index++;
- lu_object_put(env, &dt_obj->do_lu);
+ dt_object_put(env, dt_obj);
if (rc < 0)
GOTO(out, rc);
}
if (rc < 0)
GOTO(out, rc);
}
}
err_put:
if (obj != NULL)
}
err_put:
if (obj != NULL)
- lu_object_put(&env, &obj->do_lu);
+ dt_object_put(&env, obj);
err_env:
lu_env_fini(&env);
}
err_env:
lu_env_fini(&env);
}
obd->u.obt.obt_magic = 0;
obd->u.obt.obt_lut = NULL;
if (lut->lut_last_rcvd != NULL) {
obd->u.obt.obt_magic = 0;
obd->u.obt.obt_lut = NULL;
if (lut->lut_last_rcvd != NULL) {
- lu_object_put(env, &lut->lut_last_rcvd->do_lu);
+ dt_object_put(env, lut->lut_last_rcvd);
lut->lut_last_rcvd = NULL;
}
if (lut->lut_client_bitmap != NULL)
OBD_FREE(lut->lut_client_bitmap, LR_MAX_CLIENTS >> 3);
lut->lut_client_bitmap = NULL;
if (lut->lut_reply_data != NULL)
lut->lut_last_rcvd = NULL;
}
if (lut->lut_client_bitmap != NULL)
OBD_FREE(lut->lut_client_bitmap, LR_MAX_CLIENTS >> 3);
lut->lut_client_bitmap = NULL;
if (lut->lut_reply_data != NULL)
- lu_object_put(env, &lut->lut_reply_data->do_lu);
+ dt_object_put(env, lut->lut_reply_data);
lut->lut_reply_data = NULL;
if (lut->lut_reply_bitmap != NULL) {
for (i = 0; i < LUT_REPLY_SLOTS_MAX_CHUNKS; i++) {
lut->lut_reply_data = NULL;
if (lut->lut_reply_bitmap != NULL) {
for (i = 0; i < LUT_REPLY_SLOTS_MAX_CHUNKS; i++) {
sptlrpc_rule_set_free(&lut->lut_sptlrpc_rset);
if (lut->lut_reply_data != NULL)
sptlrpc_rule_set_free(&lut->lut_sptlrpc_rset);
if (lut->lut_reply_data != NULL)
- lu_object_put(env, &lut->lut_reply_data->do_lu);
+ dt_object_put(env, lut->lut_reply_data);
lut->lut_reply_data = NULL;
if (lut->lut_reply_bitmap != NULL) {
for (i = 0; i < LUT_REPLY_SLOTS_MAX_CHUNKS; i++) {
lut->lut_reply_data = NULL;
if (lut->lut_reply_bitmap != NULL) {
for (i = 0; i < LUT_REPLY_SLOTS_MAX_CHUNKS; i++) {
}
if (lut->lut_last_rcvd) {
dt_txn_callback_del(lut->lut_bottom, &lut->lut_txn_cb);
}
if (lut->lut_last_rcvd) {
dt_txn_callback_del(lut->lut_bottom, &lut->lut_txn_cb);
- lu_object_put(env, &lut->lut_last_rcvd->do_lu);
+ dt_object_put(env, lut->lut_last_rcvd);
lut->lut_last_rcvd = NULL;
}
EXIT;
lut->lut_last_rcvd = NULL;
}
EXIT;
- lu_object_put(env, &dt_obj->do_lu);
+ dt_object_put(env, dt_obj);
rc = top_trans_stop(env, tdtd->tdtd_dt, th);
for (i = 0; i < ta->ta_argno; i++) {
if (ta->ta_args[i]->object != NULL) {
rc = top_trans_stop(env, tdtd->tdtd_dt, th);
for (i = 0; i < ta->ta_argno; i++) {
if (ta->ta_args[i]->object != NULL) {
- lu_object_put(env, &ta->ta_args[i]->object->do_lu);
+ dt_object_put(env, ta->ta_args[i]->object);
ta->ta_args[i]->object = NULL;
}
}
ta->ta_args[i]->object = NULL;
}
}
out_put:
if (rc < 0 && dt_obj != NULL) {
out_put:
if (rc < 0 && dt_obj != NULL) {
- lu_object_put(env, &dt_obj->do_lu);
+ dt_object_put(env, dt_obj);
tdtd->tdtd_batchid_obj = NULL;
}
return rc;
tdtd->tdtd_batchid_obj = NULL;
}
return rc;
dtrq_list_destroy(tdtd);
if (tdtd->tdtd_batchid_obj != NULL) {
dtrq_list_destroy(tdtd);
if (tdtd->tdtd_batchid_obj != NULL) {
- lu_object_put(env, &tdtd->tdtd_batchid_obj->do_lu);
+ dt_object_put(env, tdtd->tdtd_batchid_obj);
tdtd->tdtd_batchid_obj = NULL;
}
}
tdtd->tdtd_batchid_obj = NULL;
}
}