X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;ds=sidebyside;f=lustre%2Fosp%2Fosp_dev.c;h=9c6a33c49b5bf222f6574f0914ebd7f1105d4216;hb=refs%2Fchanges%2F35%2F7135%2F25;hp=f8c6fef51aa4d81830bc49db212c5a0e618738dd;hpb=757c8740038b257c6cb8c0f57dab91a3280e6ef9;p=fs%2Flustre-release.git diff --git a/lustre/osp/osp_dev.c b/lustre/osp/osp_dev.c index f8c6fef..9c6a33c 100644 --- a/lustre/osp/osp_dev.c +++ b/lustre/osp/osp_dev.c @@ -27,7 +27,7 @@ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2012, Intel Corporation. + * Copyright (c) 2012, 2013, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -42,9 +42,6 @@ * Author: Di Wang */ -#ifndef EXPORT_SYMTAB -# define EXPORT_SYMTAB -#endif #define DEBUG_SUBSYSTEM S_MDS #include @@ -55,7 +52,7 @@ #include "osp_internal.h" /* Slab for OSP object allocation */ -cfs_mem_cache_t *osp_object_kmem; +struct kmem_cache *osp_object_kmem; static struct lu_kmem_descr osp_caches[] = { { @@ -76,7 +73,7 @@ struct lu_object *osp_object_alloc(const struct lu_env *env, struct osp_object *o; struct lu_object *l; - OBD_SLAB_ALLOC_PTR_GFP(o, osp_object_kmem, CFS_ALLOC_IO); + OBD_SLAB_ALLOC_PTR_GFP(o, osp_object_kmem, __GFP_IO); if (o != NULL) { l = &o->opo_obj.do_lu; @@ -425,7 +422,7 @@ static int osp_recovery_complete(const struct lu_env *env, ENTRY; osp->opd_recovery_completed = 1; if (!osp->opd_connect_mdt) - cfs_waitq_signal(&osp->opd_pre_waitq); + wake_up(&osp->opd_pre_waitq); RETURN(rc); } @@ -542,7 +539,8 @@ static int osp_init0(const struct lu_env *env, struct osp_device *m, struct obd_import *imp; class_uuid_t uuid; char *src, *tgt, *mdt, *osdname = NULL; - int rc, idx; + int rc; + long idx; ENTRY; @@ -603,7 +601,7 @@ static int osp_init0(const struct lu_env *env, struct osp_device *m, } else { /* New OSC name fsname-OSTXXXX-osc-MDTXXXX */ if (strncmp(tgt, "-MDT", 4) != 0 && - strncmp(tgt, "-OST", 4) != 0) { + strncmp(tgt, "-OST", 4) != 0) { CERROR("%s: invalid target name %s\n", m->opd_obd->obd_name, lustre_cfg_string(cfg, 0)); RETURN(-EINVAL); @@ -665,7 +663,7 @@ static int osp_init0(const struct lu_env *env, struct osp_device *m, OBD_ALLOC(cli->cl_rpc_lock, sizeof(*cli->cl_rpc_lock)); if (!cli->cl_rpc_lock) - RETURN(-ENOMEM); + GOTO(out_fini, rc = -ENOMEM); osp_init_rpc_lock(cli->cl_rpc_lock); } @@ -695,6 +693,14 @@ static int osp_init0(const struct lu_env *env, struct osp_device *m, rc = osp_last_used_init(env, m); if (rc) GOTO(out_proc, rc); + + rc = obd_fid_init(m->opd_obd, NULL, LUSTRE_SEQ_DATA); + if (rc) { + CERROR("%s: fid init error: rc = %d\n", + m->opd_obd->obd_name, rc); + GOTO(out_last_used, rc); + } + /* Initialize precreation thread, it handles new * connections as well. */ rc = osp_init_precreate(m); @@ -709,12 +715,6 @@ static int osp_init0(const struct lu_env *env, struct osp_device *m, if (rc) GOTO(out_precreat, rc); - rc = obd_fid_init(m->opd_obd, NULL, LUSTRE_SEQ_DATA); - if (rc) { - CERROR("%s: fid init error: rc = %d\n", - m->opd_obd->obd_name, rc); - GOTO(out, rc); - } } /* * Initiate connect to OST @@ -745,7 +745,6 @@ out_last_used: out_proc: ptlrpc_lprocfs_unregister_obd(obd); lprocfs_obd_cleanup(obd); - obd_cleanup_client_import(obd); if (m->opd_symlink) lprocfs_remove(&m->opd_symlink); client_obd_cleanup(obd); @@ -825,8 +824,6 @@ static struct lu_device *osp_device_fini(const struct lu_env *env, imp->imp_rq_pool = NULL; } - obd_cleanup_client_import(m->opd_obd); - if (m->opd_symlink) lprocfs_remove(&m->opd_symlink); @@ -1027,7 +1024,7 @@ static int osp_import_event(struct obd_device *obd, struct obd_import *imp, if (d->opd_connect_mdt) break; osp_pre_update_status(d, -ENODEV); - cfs_waitq_signal(&d->opd_pre_waitq); + wake_up(&d->opd_pre_waitq); CDEBUG(D_HA, "got disconnected\n"); break; case IMP_EVENT_INACTIVE: @@ -1035,7 +1032,7 @@ static int osp_import_event(struct obd_device *obd, struct obd_import *imp, if (d->opd_connect_mdt) break; osp_pre_update_status(d, -ENODEV); - cfs_waitq_signal(&d->opd_pre_waitq); + wake_up(&d->opd_pre_waitq); CDEBUG(D_HA, "got inactive\n"); break; case IMP_EVENT_ACTIVE: @@ -1046,7 +1043,7 @@ static int osp_import_event(struct obd_device *obd, struct obd_import *imp, d->opd_imp_seen_connected = 1; if (d->opd_connect_mdt) break; - cfs_waitq_signal(&d->opd_pre_waitq); + wake_up(&d->opd_pre_waitq); __osp_sync_check_for_work(d); CDEBUG(D_HA, "got connected\n"); break; @@ -1080,7 +1077,7 @@ static int osp_iocontrol(unsigned int cmd, struct obd_export *exp, int len, d = lu2osp_dev(obd->obd_lu_dev); LASSERT(d->opd_dt_dev.dd_ops == &osp_dt_ops); - if (!cfs_try_module_get(THIS_MODULE)) { + if (!try_module_get(THIS_MODULE)) { CERROR("%s: can't get module. Is it alive?", obd->obd_name); return -EINVAL; } @@ -1101,10 +1098,10 @@ static int osp_iocontrol(unsigned int cmd, struct obd_export *exp, int len, break; default: CERROR("%s: unrecognized ioctl %#x by %s\n", obd->obd_name, - cmd, cfs_curproc_comm()); + cmd, current_comm()); rc = -ENOTTY; } - cfs_module_put(THIS_MODULE); + module_put(THIS_MODULE); return rc; } @@ -1200,8 +1197,11 @@ static int __init osp_mod_init(void) lprocfs_osp_init_vars(&lvars); - rc = class_register_type(&osp_obd_device_ops, NULL, lvars.module_vars, - LUSTRE_OSP_NAME, &osp_device_type); + rc = class_register_type(&osp_obd_device_ops, NULL, NULL, +#ifndef HAVE_ONLY_PROCFS_SEQ + lvars.module_vars, +#endif + LUSTRE_OSP_NAME, &osp_device_type); /* create "osc" entry in procfs for compatibility purposes */ if (rc != 0) { @@ -1211,8 +1211,11 @@ static int __init osp_mod_init(void) lprocfs_lwp_init_vars(&lvars); - rc = class_register_type(&lwp_obd_device_ops, NULL, lvars.module_vars, - LUSTRE_LWP_NAME, &lwp_device_type); + rc = class_register_type(&lwp_obd_device_ops, NULL, NULL, +#ifndef HAVE_ONLY_PROCFS_SEQ + lvars.module_vars, +#endif + LUSTRE_LWP_NAME, &lwp_device_type); if (rc != 0) { class_unregister_type(LUSTRE_OSP_NAME); lu_kmem_fini(osp_caches);