mutex_lock(&lov->lov_lock);
/* ok to dec to 0 more than once -- ltd_exp's will be null */
if (atomic_dec_and_test(&lov->lov_refcount) && lov->lov_death_row) {
- struct list_head kill = LIST_HEAD_INIT(kill);
+ LIST_HEAD(kill);
struct lov_tgt_desc *tgt, *n;
int i;
init_rwsem(&lov->lov_notify_lock);
- lov->lov_pools_hash_body = cfs_hash_create("POOLS", HASH_POOLS_CUR_BITS,
- HASH_POOLS_MAX_BITS,
- HASH_POOLS_BKT_BITS, 0,
- CFS_HASH_MIN_THETA,
- CFS_HASH_MAX_THETA,
- &pool_hash_operations,
- CFS_HASH_DEFAULT);
INIT_LIST_HEAD(&lov->lov_pool_list);
lov->lov_pool_count = 0;
+ rc = lov_pool_hash_init(&lov->lov_pools_hash_body);
+ if (rc)
+ GOTO(out, rc);
+
rc = lov_ost_pool_init(&lov->lov_packed, 0);
if (rc)
GOTO(out, rc);
/* coverity[overrun-buffer-val] */
lov_pool_del(obd, pool->pool_name);
}
- cfs_hash_putref(lov->lov_pools_hash_body);
+ lov_pool_hash_destroy(&lov->lov_pools_hash_body);
lov_ost_pool_free(&lov->lov_packed);
lprocfs_obd_cleanup(obd);
RETURN(rc);
}
-static struct obd_ops lov_obd_ops = {
+static const struct obd_ops lov_obd_ops = {
.o_owner = THIS_MODULE,
.o_setup = lov_setup,
.o_cleanup = lov_cleanup,