*
* You should have received a copy of the GNU General Public License
* version 2 along with this program; If not, see
- * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
+ * http://www.gnu.org/licenses/gpl-2.0.html
*
* GPL HEADER END
*/
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);
}
mgs->mgs_configs_dir = o;
+ /* colocated MDT will cache config in target root dir */
nm_config_file_obj = local_index_find_or_create(env, mgs->mgs_los,
mgs->mgs_configs_dir,
LUSTRE_NODEMAP_NAME,
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(env, nm_config_file_obj);
+ nm_config_file = nm_config_file_register_mgs(env, nm_config_file_obj,
+ mgs->mgs_los);
+ dt_object_put(env, nm_config_file_obj);
if (IS_ERR(nm_config_file)) {
- lu_object_put(env, &nm_config_file_obj->do_lu);
CERROR("%s: error loading nodemap config file, file must be "
"removed via ldiskfs: rc = %ld\n",
mgs->mgs_obd->obd_name, PTR_ERR(nm_config_file));
out_nm:
if (rc < 0) {
- nm_config_file_deregister(env, nm_config_file);
+ nm_config_file_deregister_mgs(env, nm_config_file);
mgs->mgs_obd->u.obt.obt_nodemap_config_file = NULL;
}
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);
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) {
- nm_config_file_deregister(env,
- mgs->mgs_obd->u.obt.obt_nodemap_config_file);
+ struct nm_config_file *ncf = mgs->mgs_obd->u.obt.obt_nodemap_config_file;
+
+ nm_config_file_deregister_mgs(env, ncf);
mgs->mgs_obd->u.obt.obt_nodemap_config_file = NULL;
}