From 5963af745b3aa14410d5ceb66f8a7b7d6aaf576a Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Tue, 11 Oct 2016 15:18:45 -0600 Subject: [PATCH] LU-137 obdclass: add dt_object_put() and use it 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 Change-Id: I7ef657438441de4a91ee08edb4bc097ac97b7418 Reviewed-on: https://review.whamcloud.com/23092 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Alex Zhuravlev Reviewed-by: Nathaniel Clark Reviewed-by: Oleg Drokin --- lustre/fid/fid_store.c | 17 ++++---- lustre/fld/fld_index.c | 6 +-- lustre/include/dt_object.h | 12 ++++++ lustre/lfsck/lfsck_internal.h | 2 +- lustre/lfsck/lfsck_layout.c | 2 +- lustre/lod/lod_dev.c | 8 ++-- lustre/lod/lod_lov.c | 2 +- lustre/lod/lod_object.c | 7 ++-- lustre/lod/lod_qos.c | 4 +- lustre/mdd/mdd_device.c | 4 +- lustre/mdd/mdd_orphans.c | 14 +++---- lustre/mgc/mgc_request.c | 6 +-- lustre/mgs/mgs_fs.c | 14 +++---- lustre/mgs/mgs_nids.c | 4 +- lustre/obdclass/dt_object.c | 83 ++++++++++++++++++++------------------- lustre/obdclass/llog_osd.c | 30 +++++++------- lustre/obdclass/llog_test.c | 2 +- lustre/obdclass/local_storage.c | 18 ++++----- lustre/obdecho/echo_client.c | 4 +- lustre/ofd/ofd_fs.c | 4 +- lustre/ofd/ofd_internal.h | 6 ++- lustre/ofd/ofd_io.c | 4 +- lustre/ofd/ofd_objects.c | 11 ------ lustre/osd-ldiskfs/osd_handler.c | 16 +------- lustre/osd-ldiskfs/osd_internal.h | 11 ++++++ lustre/osd-ldiskfs/osd_io.c | 2 +- lustre/osd-ldiskfs/osd_quota.c | 10 ++--- lustre/osd-zfs/osd_index.c | 13 +----- lustre/osd-zfs/osd_internal.h | 11 ++++++ lustre/osd-zfs/osd_quota.c | 2 +- lustre/osp/osp_dev.c | 14 +++---- lustre/osp/osp_trans.c | 4 +- lustre/ptlrpc/nodemap_storage.c | 12 +++--- lustre/quota/lquota_disk.c | 14 +++---- lustre/quota/lquota_lib.c | 14 +++---- lustre/quota/qmt_dev.c | 2 +- lustre/quota/qmt_handler.c | 2 +- lustre/quota/qmt_lock.c | 4 +- lustre/quota/qmt_pool.c | 6 +-- lustre/quota/qsd_lib.c | 8 ++-- lustre/target/out_handler.c | 4 +- lustre/target/tgt_handler.c | 2 +- lustre/target/tgt_main.c | 8 ++-- lustre/target/update_recovery.c | 4 +- lustre/target/update_trans.c | 4 +- 45 files changed, 217 insertions(+), 214 deletions(-) diff --git a/lustre/fid/fid_store.c b/lustre/fid/fid_store.c index fd85270..225ddfa 100644 --- a/lustre/fid/fid_store.c +++ b/lustre/fid/fid_store.c @@ -234,16 +234,15 @@ int seq_store_init(struct lu_server_seq *seq, RETURN(rc); } -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) { - ENTRY; + ENTRY; - 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; + } - EXIT; + EXIT; } diff --git a/lustre/fld/fld_index.c b/lustre/fld/fld_index.c index ffeca9b..fa9ca94 100644 --- a/lustre/fld/fld_index.c +++ b/lustre/fld/fld_index.c @@ -360,7 +360,7 @@ int fld_index_init(const struct lu_env *env, struct lu_server_fld *fld, 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)) { @@ -436,7 +436,7 @@ out: 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); @@ -447,7 +447,7 @@ void fld_index_fini(const struct lu_env *env, struct lu_server_fld *fld) 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; diff --git a/lustre/include/dt_object.h b/lustre/include/dt_object.h index 5c568ee..038095c 100644 --- a/lustre/include/dt_object.h +++ b/lustre/include/dt_object.h @@ -1956,6 +1956,18 @@ dt_object_locate(struct dt_object *dto, struct dt_device *dt_dev) return NULL; } +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); diff --git a/lustre/lfsck/lfsck_internal.h b/lustre/lfsck/lfsck_internal.h index 42dfea6..d54b25f 100644 --- a/lustre/lfsck/lfsck_internal.h +++ b/lustre/lfsck/lfsck_internal.h @@ -1238,7 +1238,7 @@ static inline struct dt_object *lfsck_object_get(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 diff --git a/lustre/lfsck/lfsck_layout.c b/lustre/lfsck/lfsck_layout.c index 8ce6086..517b3f5 100644 --- a/lustre/lfsck/lfsck_layout.c +++ b/lustre/lfsck/lfsck_layout.c @@ -2613,7 +2613,7 @@ put: 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); diff --git a/lustre/lod/lod_dev.c b/lustre/lod/lod_dev.c index bb1a90c..0e2d0c2 100644 --- a/lustre/lod/lod_dev.c +++ b/lustre/lod/lod_dev.c @@ -1032,7 +1032,7 @@ static int lod_process_config(const struct lu_env *env, } 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; } @@ -1203,7 +1203,7 @@ static int lod_prepare(const struct lu_env *env, struct lu_device *pdev, 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); @@ -1214,7 +1214,7 @@ static int lod_prepare(const struct lu_env *env, struct lu_device *pdev, 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) @@ -1225,7 +1225,7 @@ static int lod_prepare(const struct lu_env *env, struct lu_device *pdev, GOTO(out_put, rc); out_put: - lu_object_put(env, &root->do_lu); + dt_object_put(env, root); RETURN(rc); } diff --git a/lustre/lod/lod_lov.c b/lustre/lod/lod_lov.c index 1c1db0b..fea2d33 100644 --- a/lustre/lod/lod_lov.c +++ b/lustre/lod/lod_lov.c @@ -899,7 +899,7 @@ out: 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; diff --git a/lustre/lod/lod_object.c b/lustre/lod/lod_object.c index cb15551..1e939b0 100644 --- a/lustre/lod/lod_object.c +++ b/lustre/lod/lod_object.c @@ -1831,7 +1831,7 @@ out_put: 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; @@ -3101,8 +3101,7 @@ static void lod_ah_init(const struct lu_env *env, 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); } @@ -4065,7 +4064,7 @@ void lod_object_free_striping(const struct lu_env *env, struct lod_object *lo) 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; diff --git a/lustre/lod/lod_qos.c b/lustre/lod/lod_qos.c index 7defc4a..8621376 100644 --- a/lustre/lod/lod_qos.c +++ b/lustre/lod/lod_qos.c @@ -1533,7 +1533,7 @@ static int lod_alloc_qos(const struct lu_env *env, struct lod_object *lo, 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]); stripe[i] = NULL; } @@ -1895,7 +1895,7 @@ int lod_qos_prep_create(const struct lu_env *env, struct lod_object *lo, 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; diff --git a/lustre/mdd/mdd_device.c b/lustre/mdd/mdd_device.c index ca63154..620615b 100644 --- a/lustre/mdd/mdd_device.c +++ b/lustre/mdd/mdd_device.c @@ -984,10 +984,10 @@ int mdd_local_file_create(const struct lu_env *env, struct mdd_device *mdd, *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); EXIT; out_put: - lu_object_put(env, &parent->do_lu); + dt_object_put(env, parent); return rc; } diff --git a/lustre/mdd/mdd_orphans.c b/lustre/mdd/mdd_orphans.c index 336f073..b8bb33b 100644 --- a/lustre/mdd/mdd_orphans.c +++ b/lustre/mdd/mdd_orphans.c @@ -539,7 +539,7 @@ int orph_index_init(const struct lu_env *env, struct mdd_device *mdd) 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); + dt_object_put(env, d); RETURN(-ENOTDIR); } mdd->mdd_orphans = d; @@ -548,12 +548,12 @@ int orph_index_init(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) diff --git a/lustre/mgc/mgc_request.c b/lustre/mgc/mgc_request.c index 7b19c21..1146f7f 100644 --- a/lustre/mgc/mgc_request.c +++ b/lustre/mgc/mgc_request.c @@ -815,7 +815,7 @@ static int mgc_fs_setup(const struct lu_env *env, struct obd_device *obd, 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)); @@ -834,7 +834,7 @@ static int mgc_fs_setup(const struct lu_env *env, struct obd_device *obd, 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: @@ -855,7 +855,7 @@ static int mgc_fs_cleanup(const struct lu_env *env, struct obd_device *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); diff --git a/lustre/mgs/mgs_fs.c b/lustre/mgs/mgs_fs.c index b4c745d..217b41c 100644 --- a/lustre/mgs/mgs_fs.c +++ b/lustre/mgs/mgs_fs.c @@ -153,7 +153,7 @@ int mgs_fs_setup(const struct lu_env *env, struct mgs_device *mgs) GOTO(out_root, rc = PTR_ERR(o)); if (!dt_try_as_dir(env, o)) { - lu_object_put(env, &o->do_lu); + dt_object_put(env, o); GOTO(out_root, rc = -ENOTDIR); } @@ -174,13 +174,13 @@ int mgs_fs_setup(const struct lu_env *env, struct mgs_device *mgs) 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); - 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", @@ -204,11 +204,11 @@ out_nm: } 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: - lu_object_put(env, &root->do_lu); + dt_object_put(env, root); out_los: if (rc) { local_oid_storage_fini(env, mgs->mgs_los); @@ -223,11 +223,11 @@ out: 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) { - 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) { diff --git a/lustre/mgs/mgs_nids.c b/lustre/mgs/mgs_nids.c index fecd6d5..1e24fe8 100644 --- a/lustre/mgs/mgs_nids.c +++ b/lustre/mgs/mgs_nids.c @@ -250,7 +250,7 @@ static int nidtbl_update_version(const struct lu_env *env, out: dt_trans_stop(env, mgs->mgs_bottom, th); out_put: - lu_object_put(env, &fsdb->do_lu); + dt_object_put(env, fsdb); RETURN(rc); } @@ -298,7 +298,7 @@ static int nidtbl_read_version(const struct lu_env *env, 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); RETURN(rc); } diff --git a/lustre/obdclass/dt_object.c b/lustre/obdclass/dt_object.c index f5f338b..3f164f0 100644 --- a/lustre/obdclass/dt_object.c +++ b/lustre/obdclass/dt_object.c @@ -259,23 +259,25 @@ EXPORT_SYMBOL(dt_locate_at); /** * 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; } /** @@ -364,24 +366,22 @@ static struct dt_object *dt_reg_open(const struct lu_env *env, * \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, @@ -427,15 +427,16 @@ struct dt_object *dt_find_or_create(const struct lu_env *env, GOTO(unlock, rc); LASSERT(dt_object_exists(dto)); unlock: - dt_write_unlock(env, dto); + dt_write_unlock(env, dto); trans_stop: - dt_trans_stop(env, dt, th); + dt_trans_stop(env, dt, th); out: - 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); @@ -992,7 +993,7 @@ int dt_index_read(const struct lu_env *env, struct dt_device *dev, GOTO(out, rc); out: - lu_object_put(env, &obj->do_lu); + dt_object_put(env, obj); return rc; } EXPORT_SYMBOL(dt_index_read); diff --git a/lustre/obdclass/llog_osd.c b/lustre/obdclass/llog_osd.c index 551a949..2f976e9 100644 --- a/lustre/obdclass/llog_osd.c +++ b/lustre/obdclass/llog_osd.c @@ -1137,7 +1137,7 @@ static struct dt_object *llog_osd_dir_get(const struct lu_env *env, 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 { @@ -1236,7 +1236,7 @@ static int llog_osd_open(const struct lu_env *env, struct llog_handle *handle, 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, @@ -1271,7 +1271,7 @@ generate: ", 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); + dt_object_put(env, o); /* just skip this llog ID, we shouldn't delete it because we * don't know exactly what is its purpose and state. */ goto generate; @@ -1290,7 +1290,7 @@ after_open: RETURN(rc); out_put: - lu_object_put(env, &o->do_lu); + dt_object_put(env, o); out_name: if (handle->lgh_name != NULL) OBD_FREE(handle->lgh_name, strlen(name) + 1); @@ -1337,7 +1337,7 @@ struct dt_object *llog_osd_get_regular_fid_dir(const struct lu_env *env, 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)); } @@ -1392,7 +1392,7 @@ llog_osd_regular_fid_add_name_entry(const struct lu_env *env, } dt_write_unlock(env, dir); - lu_object_put(env, &dir->do_lu); + dt_object_put(env, dir); RETURN(rc); } @@ -1469,7 +1469,7 @@ static int llog_osd_declare_create(const struct lu_env *env, 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, @@ -1558,7 +1558,7 @@ static int llog_osd_create(const struct lu_env *env, struct llog_handle *res, (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, @@ -1591,11 +1591,11 @@ static int llog_osd_close(const struct lu_env *env, struct llog_handle *handle) 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 { - lu_object_put(env, &handle->lgh_obj->do_lu); + dt_object_put(env, handle->lgh_obj); } los = handle->private_data; LASSERT(los); @@ -1650,7 +1650,7 @@ llog_osd_regular_fid_del_name_entry(const struct lu_env *env, } dt_write_unlock(env, dir); - lu_object_put(env, &dir->do_lu); + dt_object_put(env, dir); RETURN(rc); } @@ -1710,7 +1710,7 @@ static int llog_osd_declare_destroy(const struct lu_env *env, out_put: if (!(IS_ERR_OR_NULL(llog_dir))) - lu_object_put(env, &llog_dir->do_lu); + dt_object_put(env, llog_dir); RETURN(rc); } @@ -1781,7 +1781,7 @@ static int llog_osd_destroy(const struct lu_env *env, 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); RETURN(rc); } @@ -2027,7 +2027,7 @@ out_trans: EXIT; out: - lu_object_put(env, &o->do_lu); + dt_object_put(env, o); RETURN(rc); } EXPORT_SYMBOL(llog_osd_get_cat_list); @@ -2117,7 +2117,7 @@ int llog_osd_put_cat_list(const struct lu_env *env, struct dt_device *d, out_trans: dt_trans_stop(env, d, th); out: - lu_object_put(env, &o->do_lu); + dt_object_put(env, o); RETURN(rc); } EXPORT_SYMBOL(llog_osd_put_cat_list); diff --git a/lustre/obdclass/llog_test.c b/lustre/obdclass/llog_test.c index 735c976..b5382c1e 100644 --- a/lustre/obdclass/llog_test.c +++ b/lustre/obdclass/llog_test.c @@ -1341,7 +1341,7 @@ out_put: llog_ctxt_put(ctxt); if (obj != NULL) - lu_object_put(env, &obj->do_lu); + dt_object_put(env, obj); RETURN(rc); } diff --git a/lustre/obdclass/local_storage.c b/lustre/obdclass/local_storage.c index 453bedc..89b227b 100644 --- a/lustre/obdclass/local_storage.c +++ b/lustre/obdclass/local_storage.c @@ -419,7 +419,7 @@ trans_stop: 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); @@ -515,7 +515,7 @@ struct dt_object *local_file_find_or_create_with_fid(const struct lu_env *env, * 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); @@ -611,7 +611,7 @@ local_index_find_or_create_with_fid(const struct lu_env *env, * 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); @@ -694,7 +694,7 @@ unlock: 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); @@ -747,7 +747,7 @@ static int lastid_compat_check(const struct lu_env *env, struct dt_device *dev, 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) @@ -760,7 +760,7 @@ static int lastid_compat_check(const struct lu_env *env, struct dt_device *dev, 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"); @@ -790,7 +790,7 @@ static int lastid_compat_check(const struct lu_env *env, struct dt_device *dev, 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; @@ -927,7 +927,7 @@ out_los: 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); @@ -964,7 +964,7 @@ void local_oid_storage_fini(const struct lu_env *env, } if (los->los_obj) - 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); diff --git a/lustre/obdecho/echo_client.c b/lustre/obdecho/echo_client.c index ea4c18a..1c585d6 100644 --- a/lustre/obdecho/echo_client.c +++ b/lustre/obdecho/echo_client.c @@ -755,11 +755,11 @@ echo_md_local_file_create(const struct lu_env *env, struct echo_md_device *emd, *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); EXIT; out_put: - lu_object_put(env, &parent->do_lu); + dt_object_put(env, parent); RETURN(rc); } diff --git a/lustre/ofd/ofd_fs.c b/lustre/ofd/ofd_fs.c index ea3d87b..25e59c2 100644 --- a/lustre/ofd/ofd_fs.c +++ b/lustre/ofd/ofd_fs.c @@ -111,7 +111,7 @@ void ofd_seq_put(const struct lu_env *env, struct ofd_seq *oseq) 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); OBD_FREE_PTR(oseq); } } @@ -680,7 +680,7 @@ void ofd_fs_cleanup(const struct lu_env *env, struct ofd_device *ofd) 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; } diff --git a/lustre/ofd/ofd_internal.h b/lustre/ofd/ofd_internal.h index 1e8dd7f..041d7e8 100644 --- a/lustre/ofd/ofd_internal.h +++ b/lustre/ofd/ofd_internal.h @@ -403,7 +403,11 @@ int ofd_object_ff_load(const struct lu_env *env, struct ofd_object *fo); 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, diff --git a/lustre/ofd/ofd_io.c b/lustre/ofd/ofd_io.c index bd2da51..bcb41db 100644 --- a/lustre/ofd/ofd_io.c +++ b/lustre/ofd/ofd_io.c @@ -136,7 +136,7 @@ static void ofd_inconsistency_verify_one(const struct lu_env *env, 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); } @@ -214,7 +214,7 @@ static int ofd_inconsistency_verification_main(void *args) 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); } diff --git a/lustre/ofd/ofd_objects.c b/lustre/ofd/ofd_objects.c index fd0e74a..9b8af65 100644 --- a/lustre/ofd/ofd_objects.c +++ b/lustre/ofd/ofd_objects.c @@ -166,17 +166,6 @@ int ofd_object_ff_load(const struct lu_env *env, struct ofd_object *fo) } /** - * 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. diff --git a/lustre/osd-ldiskfs/osd_handler.c b/lustre/osd-ldiskfs/osd_handler.c index c9a9ff5..552f834 100644 --- a/lustre/osd-ldiskfs/osd_handler.c +++ b/lustre/osd-ldiskfs/osd_handler.c @@ -5216,17 +5216,6 @@ out: return rc; } -/** - * 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, @@ -5430,7 +5419,6 @@ static struct dt_it *osd_it_iam_init(const struct lu_env *env, /** * 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; @@ -5438,7 +5426,7 @@ static void osd_it_iam_fini(const struct lu_env *env, struct dt_it *di) 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); OBD_FREE_PTR(it); } @@ -5743,7 +5731,7 @@ static void osd_it_ea_fini(const struct lu_env *env, struct dt_it *di) 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 diff --git a/lustre/osd-ldiskfs/osd_internal.h b/lustre/osd-ldiskfs/osd_internal.h index 90fa9a2..f23ee5f 100644 --- a/lustre/osd-ldiskfs/osd_internal.h +++ b/lustre/osd-ldiskfs/osd_internal.h @@ -904,6 +904,17 @@ static inline struct super_block *osd_sb(const struct osd_device *dev) 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; diff --git a/lustre/osd-ldiskfs/osd_io.c b/lustre/osd-ldiskfs/osd_io.c index 3434634..25326bf 100644 --- a/lustre/osd-ldiskfs/osd_io.c +++ b/lustre/osd-ldiskfs/osd_io.c @@ -475,7 +475,7 @@ static int osd_bufs_put(const struct lu_env *env, struct dt_object *dt, 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; } diff --git a/lustre/osd-ldiskfs/osd_quota.c b/lustre/osd-ldiskfs/osd_quota.c index 4ef968b..3e7807a 100644 --- a/lustre/osd-ldiskfs/osd_quota.c +++ b/lustre/osd-ldiskfs/osd_quota.c @@ -192,7 +192,7 @@ static void osd_it_acct_fini(const struct lu_env *env, struct dt_it *di) 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); @@ -712,7 +712,7 @@ int osd_quota_migration(const struct lu_env *env, struct dt_object *dt) 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); } @@ -722,12 +722,12 @@ int osd_quota_migration(const struct lu_env *env, struct dt_object *dt) "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)) - lu_object_put(env, &parent->do_lu); - lu_object_put(env, &root->do_lu); + dt_object_put(env, parent); + dt_object_put(env, root); RETURN(rc); } diff --git a/lustre/osd-zfs/osd_index.c b/lustre/osd-zfs/osd_index.c index 203a3fd..9190f65 100644 --- a/lustre/osd-zfs/osd_index.c +++ b/lustre/osd-zfs/osd_index.c @@ -182,7 +182,7 @@ static void osd_index_it_fini(const struct lu_env *env, struct dt_it *di) 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; @@ -477,17 +477,6 @@ static int osd_declare_dir_insert(const struct lu_env *env, RETURN(0); } -/** - * 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) { diff --git a/lustre/osd-zfs/osd_internal.h b/lustre/osd-zfs/osd_internal.h index 54c9a6b..4ae2cc3 100644 --- a/lustre/osd-zfs/osd_internal.h +++ b/lustre/osd-zfs/osd_internal.h @@ -436,6 +436,17 @@ static inline int osd_invariant(const struct osd_object *obj) return 1; } +/** + * 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)); diff --git a/lustre/osd-zfs/osd_quota.c b/lustre/osd-zfs/osd_quota.c index d9ac3e7..2e9152c 100644 --- a/lustre/osd-zfs/osd_quota.c +++ b/lustre/osd-zfs/osd_quota.c @@ -197,7 +197,7 @@ static void osd_it_acct_fini(const struct lu_env *env, struct dt_it *di) 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); OBD_FREE_PTR(it); EXIT; diff --git a/lustre/osp/osp_dev.c b/lustre/osp/osp_dev.c index bb8b4b1..108c385 100644 --- a/lustre/osp/osp_dev.c +++ b/lustre/osp/osp_dev.c @@ -183,7 +183,7 @@ static struct dt_object 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); @@ -283,7 +283,7 @@ out: /* 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); } @@ -340,7 +340,7 @@ out: /* 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); } @@ -410,11 +410,11 @@ static int osp_last_used_init(const struct lu_env *env, struct osp_device *osp) 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) { - 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; } } @@ -432,12 +432,12 @@ static void osp_last_used_fini(const struct lu_env *env, struct osp_device *osp) { /* 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) { - 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; } } diff --git a/lustre/osp/osp_trans.c b/lustre/osp/osp_trans.c index ebecd8a..674078d 100644 --- a/lustre/osp/osp_trans.c +++ b/lustre/osp/osp_trans.c @@ -240,7 +240,7 @@ void osp_update_request_destroy(const struct lu_env *env, 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); } if (env == &lenv) @@ -527,7 +527,7 @@ static void osp_thandle_invalidate_object(const struct lu_env *env, 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); } } diff --git a/lustre/ptlrpc/nodemap_storage.c b/lustre/ptlrpc/nodemap_storage.c index 4855df7..efed19e 100644 --- a/lustre/ptlrpc/nodemap_storage.c +++ b/lustre/ptlrpc/nodemap_storage.c @@ -213,7 +213,7 @@ again: * 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)); @@ -226,7 +226,7 @@ again: } out_root: - lu_object_put(env, &root_obj->do_lu); + dt_object_put(env, root_obj); out: return nm_obj; } @@ -1032,7 +1032,7 @@ struct dt_object *nodemap_save_config_cache(const struct lu_env *env, mutex_unlock(&active_config_lock); if (rc < 0) { - lu_object_put(env, &o->do_lu); + dt_object_put(env, o); o = ERR_PTR(rc); } @@ -1059,7 +1059,7 @@ static void nodemap_save_all_caches(void) 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); @@ -1214,7 +1214,7 @@ void nm_config_file_deregister_mgs(const struct lu_env *env, nodemap_mgs_ncf = NULL; if (ncf->ncf_obj) - lu_object_put(env, &ncf->ncf_obj->do_lu); + dt_object_put(env, ncf->ncf_obj); OBD_FREE_PTR(ncf); @@ -1235,7 +1235,7 @@ void nm_config_file_deregister_tgt(const struct lu_env *env, 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); OBD_FREE_PTR(ncf); diff --git a/lustre/quota/lquota_disk.c b/lustre/quota/lquota_disk.c index 9269ec9..af2e299 100644 --- a/lustre/quota/lquota_disk.c +++ b/lustre/quota/lquota_disk.c @@ -84,7 +84,7 @@ lquota_disk_find_create(const struct lu_env *env, struct dt_device *dev, /* 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); @@ -196,7 +196,7 @@ struct dt_object *lquota_disk_dir_find_create(const struct lu_env *env, /* 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)); @@ -206,12 +206,12 @@ struct dt_object *lquota_disk_dir_find_create(const struct lu_env *env, 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)) - lu_object_put(env, &qt_dir->do_lu); + dt_object_put(env, qt_dir); qt_dir = ERR_PTR(rc); } return qt_dir; @@ -282,7 +282,7 @@ struct dt_object *lquota_disk_glb_find_create(const struct lu_env *env, 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); } } @@ -342,7 +342,7 @@ struct dt_object *lquota_disk_slv_find(const struct lu_env *env, 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); } } @@ -437,7 +437,7 @@ struct dt_object *lquota_disk_slv_find_create(const struct lu_env *env, 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); } } diff --git a/lustre/quota/lquota_lib.c b/lustre/quota/lquota_lib.c index b7eea3d..a9e903b 100644 --- a/lustre/quota/lquota_lib.c +++ b/lustre/quota/lquota_lib.c @@ -78,7 +78,7 @@ struct dt_object *acct_obj_lookup(const struct lu_env *env, RETURN(obj); if (!dt_object_exists(obj)) { - lu_object_put(env, &obj->do_lu); + dt_object_put(env, obj); RETURN(ERR_PTR(-ENOENT)); } @@ -92,7 +92,7 @@ struct dt_object *acct_obj_lookup(const struct lu_env *env, " 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(ERR_PTR(rc)); } } @@ -123,7 +123,7 @@ static struct dt_object *quota_obj_lookup(const struct lu_env *env, RETURN(obj); if (!dt_object_exists(obj)) { - lu_object_put(env, &obj->do_lu); + dt_object_put(env, obj); RETURN(ERR_PTR(-ENOENT)); } @@ -138,7 +138,7 @@ static struct dt_object *quota_obj_lookup(const struct lu_env *env, " 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); RETURN(ERR_PTR(rc)); } } @@ -199,7 +199,7 @@ int lquotactl_slv(const struct lu_env *env, struct dt_device *dev, 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 */ @@ -227,8 +227,8 @@ int lquotactl_slv(const struct lu_env *env, struct dt_device *dev, GOTO(out, rc = 0); out: - lu_object_put(env, &obj->do_lu); - return rc; + dt_object_put(env, obj); + return rc; } EXPORT_SYMBOL(lquotactl_slv); diff --git a/lustre/quota/qmt_dev.c b/lustre/quota/qmt_dev.c index ae4c97e..32b8ec4 100644 --- a/lustre/quota/qmt_dev.c +++ b/lustre/quota/qmt_dev.c @@ -454,7 +454,7 @@ static int qmt_device_prepare(const struct lu_env *env, /* 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); RETURN(rc); } diff --git a/lustre/quota/qmt_handler.c b/lustre/quota/qmt_handler.c index 6a84a1a..9fda736 100644 --- a/lustre/quota/qmt_handler.c +++ b/lustre/quota/qmt_handler.c @@ -557,7 +557,7 @@ out: 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)) { diff --git a/lustre/quota/qmt_lock.c b/lustre/quota/qmt_lock.c index ca59fde..872070e 100644 --- a/lustre/quota/qmt_lock.c +++ b/lustre/quota/qmt_lock.c @@ -216,7 +216,7 @@ int qmt_lvbo_init(struct lu_device *ld, struct ldlm_resource *res) 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); } @@ -435,7 +435,7 @@ int qmt_lvbo_free(struct lu_device *ld, struct ldlm_resource *res) } /* release object reference */ - lu_object_put(env, &obj->do_lu); + dt_object_put(env, obj); lu_env_fini(env); OBD_FREE_PTR(env); } diff --git a/lustre/quota/qmt_pool.c b/lustre/quota/qmt_pool.c index 3217127..b20658b 100644 --- a/lustre/quota/qmt_pool.c +++ b/lustre/quota/qmt_pool.c @@ -327,12 +327,12 @@ static void qmt_pool_free(const struct lu_env *env, struct qmt_pool_info *pool) /* 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)) - 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) { @@ -686,7 +686,7 @@ int qmt_pool_new_conn(const struct lu_env *env, struct qmt_device *qmt, /* 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: diff --git a/lustre/quota/qsd_lib.c b/lustre/quota/qsd_lib.c index 6a60263..e10eeae 100644 --- a/lustre/quota/qsd_lib.c +++ b/lustre/quota/qsd_lib.c @@ -321,20 +321,20 @@ static void qsd_qtype_fini(const struct lu_env *env, struct qsd_instance *qsd, /* 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)) { - 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)) { - 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; } @@ -526,7 +526,7 @@ void qsd_fini(const struct lu_env *env, struct qsd_instance *qsd) /* 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); qsd->qsd_root = NULL; } diff --git a/lustre/target/out_handler.c b/lustre/target/out_handler.c index f633fef..4f77ae6 100644 --- a/lustre/target/out_handler.c +++ b/lustre/target/out_handler.c @@ -815,7 +815,7 @@ static int out_trans_stop(const struct lu_env *env, 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; } } @@ -1150,7 +1150,7 @@ int out_handle(struct tgt_session_info *tsi) 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); } diff --git a/lustre/target/tgt_handler.c b/lustre/target/tgt_handler.c index d5eb49d..259c758 100644 --- a/lustre/target/tgt_handler.c +++ b/lustre/target/tgt_handler.c @@ -1249,7 +1249,7 @@ static int tgt_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc, } err_put: if (obj != NULL) - lu_object_put(&env, &obj->do_lu); + dt_object_put(&env, obj); err_env: lu_env_fini(&env); } diff --git a/lustre/target/tgt_main.c b/lustre/target/tgt_main.c index 2f96846..4d39237 100644 --- a/lustre/target/tgt_main.c +++ b/lustre/target/tgt_main.c @@ -265,14 +265,14 @@ out_put: 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) - 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++) { @@ -311,7 +311,7 @@ void tgt_fini(const struct lu_env *env, struct lu_target *lut) 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++) { @@ -331,7 +331,7 @@ void tgt_fini(const struct lu_env *env, struct lu_target *lut) } 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; diff --git a/lustre/target/update_recovery.c b/lustre/target/update_recovery.c index 766230c..3769d09 100644 --- a/lustre/target/update_recovery.c +++ b/lustre/target/update_recovery.c @@ -1265,7 +1265,7 @@ static int update_recovery_exec(const struct lu_env *env, break; } next: - lu_object_put(env, &dt_obj->do_lu); + dt_object_put(env, dt_obj); if (rc < 0) break; } @@ -1427,7 +1427,7 @@ stop_trans: 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; } } diff --git a/lustre/target/update_trans.c b/lustre/target/update_trans.c index 2e4892b..3909872 100644 --- a/lustre/target/update_trans.c +++ b/lustre/target/update_trans.c @@ -1519,7 +1519,7 @@ distribute_txn_commit_batchid_init(const struct lu_env *env, 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; @@ -1746,7 +1746,7 @@ void distribute_txn_fini(const struct lu_env *env, 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; } } -- 1.8.3.1