ltd->ltd_refcount--;
if (ltd->ltd_refcount == 0 && ltd->ltd_death_row) {
struct lod_tgt_desc *tgt_desc, *tmp;
- struct list_head kill;
+ LIST_HEAD(kill);
CDEBUG(D_CONFIG, "destroying %d ltd desc\n",
ltd->ltd_death_row);
- INIT_LIST_HEAD(&kill);
-
ltd_foreach_tgt_safe(ltd, tgt_desc, tmp) {
LASSERT(tgt_desc);
if (!tgt_desc->ltd_reap)
RETURN(rc);
out_fini_llog:
lod_sub_fini_llog(env, tgt_desc->ltd_tgt,
- tgt_desc->ltd_recovery_thread);
+ &tgt_desc->ltd_recovery_task);
out_ltd:
down_write(<d->ltd_rw_sem);
mutex_lock(<d->ltd_mutex);
- if (!for_ost && LTD_TGT(ltd, index)->ltd_recovery_thread != NULL) {
- struct ptlrpc_thread *thread;
-
- thread = LTD_TGT(ltd, index)->ltd_recovery_thread;
- OBD_FREE_PTR(thread);
- }
lod_tgt_pool_remove(<d->ltd_tgt_pool, index);
out_del_tgt:
ltd_del_tgt(ltd, tgt_desc);
lfsck_del_target(env, lod->lod_child, tgt->ltd_tgt, tgt->ltd_index,
!ltd->ltd_is_mdt);
- if (ltd->ltd_is_mdt && tgt->ltd_recovery_thread)
- OBD_FREE_PTR(tgt->ltd_recovery_thread);
-
if (!tgt->ltd_reap) {
tgt->ltd_reap = 1;
ltd->ltd_death_row++;
lod->lod_sp_me = LUSTRE_SP_CLI;
/* Set up OST pool environment */
- lod->lod_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);
- if (lod->lod_pools_hash_body == NULL)
+ lod->lod_pool_count = 0;
+ rc = lod_pool_hash_init(&lod->lod_pools_hash_body);
+ if (rc)
RETURN(-ENOMEM);
INIT_LIST_HEAD(&lod->lod_pool_list);
out_mdt_pool:
lod_tgt_pool_free(&lod->lod_mdt_descs.ltd_tgt_pool);
out_hash:
- cfs_hash_putref(lod->lod_pools_hash_body);
+ lod_pool_hash_destroy(&lod->lod_pools_hash_body);
return rc;
}
lod_pool_del(obd, pool->pool_name);
}
- cfs_hash_putref(lod->lod_pools_hash_body);
+ lod_pool_hash_destroy(&lod->lod_pools_hash_body);
lod_tgt_pool_free(&lod->lod_ost_descs.ltd_qos.lq_rr.lqr_pool);
lod_tgt_pool_free(&lod->lod_ost_descs.ltd_tgt_pool);
lod_tgt_pool_free(&lod->lod_mdt_descs.ltd_qos.lq_rr.lqr_pool);