struct lu_tgt_pool pool_obds; /* pool members */
atomic_t pool_refcount;
struct lu_qos_rr pool_rr;
- struct hlist_node pool_hash; /* access by poolname */
+ struct rhash_head pool_hash; /* access by poolname */
struct list_head pool_list;
+ struct rcu_head pool_rcu;
struct proc_dir_entry *pool_proc_entry;
struct obd_device *pool_lobd; /* owner */
};
+int lod_pool_hash_init(struct rhashtable *tbl);
+void lod_pool_hash_destroy(struct rhashtable *tbl);
+
#define pool_tgt_count(p) ((p)->pool_obds.op_count)
#define pool_tgt_array(p) ((p)->pool_obds.op_array)
#define pool_tgt_rw_sem(p) ((p)->pool_obds.op_rw_sem)
struct lod_tgt_descs lod_mdt_descs;
/* Recovery thread for lod_child */
- struct ptlrpc_thread lod_child_recovery_thread;
+ struct task_struct *lod_child_recovery_task;
/* maximum EA size underlied OSD may have */
unsigned int lod_osd_max_easize;
/* OST pool data */
int lod_pool_count;
- struct cfs_hash *lod_pools_hash_body; /* used for key access */
+ struct rhashtable lod_pools_hash_body; /* used for key access */
struct list_head lod_pool_list; /* used for sequential access */
struct proc_dir_entry *lod_pool_proc_entry;
int lod_sub_init_llog(const struct lu_env *env, struct lod_device *lod,
struct dt_device *dt);
void lod_sub_fini_llog(const struct lu_env *env,
- struct dt_device *dt, struct ptlrpc_thread *thread);
+ struct dt_device *dt, struct task_struct **taskp);
int lodname2mdt_index(char *lodname, __u32 *mdt_index);
extern void target_recovery_fini(struct obd_device *obd);
struct pool_desc *lod_find_pool(struct lod_device *lod, char *poolname);
void lod_pool_putref(struct pool_desc *pool);
int lod_pool_del(struct obd_device *obd, char *poolname);
-extern struct cfs_hash_ops pool_hash_operations;
int lod_check_index_in_pool(__u32 idx, struct pool_desc *pool);
int lod_pool_new(struct obd_device *obd, char *poolname);
int lod_pool_add(struct obd_device *obd, char *poolname, char *ostname);