* 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/
* Author: Di Wang <di.wang@intel.com>
*/
-#ifndef EXPORT_SYMTAB
-# define EXPORT_SYMTAB
-#endif
#define DEBUG_SUBSYSTEM S_MDS
#include <obd_class.h>
#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[] = {
{
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;
ENTRY;
LASSERT(env);
- /* release last_used file */
- if (!d->opd_connect_mdt)
- osp_last_used_fini(env, d);
rc = osp_disconnect(d);
/* stop sync thread */
osp_sync_fini(d);
+
+ /* release last_used file */
+ osp_last_used_fini(env, d);
}
obd_fid_fini(d->opd_obd);
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);
}
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);
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