stripe_count = 0;
size += sizeof(*lsme);
- size += lov_mds_md_size(lsme->lsme_stripe_count,
+ size += lov_mds_md_size(stripe_count,
lsme->lsme_magic);
}
struct pool_desc {
char pool_name[LOV_MAXPOOLNAME + 1];
- struct ost_pool pool_obds;
+ struct lu_tgt_pool pool_obds;
atomic_t pool_refcount;
- struct hlist_node pool_hash; /* access by poolname */
+ struct rhash_head pool_hash; /* access by poolname */
struct list_head pool_list; /* serial access */
+ struct rcu_head pool_rcu;
struct proc_dir_entry *pool_proc_entry;
struct obd_device *pool_lobd; /* owner */
};
+int lov_pool_hash_init(struct rhashtable *tbl);
+void lov_pool_hash_destroy(struct rhashtable *tbl);
+
struct lov_request {
struct obd_info rq_oi;
struct lov_request_set *rq_rqset;
#define LOV_MDC_TGT_MAX 256
-/* pools */
-extern struct cfs_hash_ops pool_hash_operations;
-/* ost_pool methods */
-int lov_ost_pool_init(struct ost_pool *op, unsigned int count);
-int lov_ost_pool_extend(struct ost_pool *op, unsigned int min_count);
-int lov_ost_pool_add(struct ost_pool *op, __u32 idx, unsigned int min_count);
-int lov_ost_pool_remove(struct ost_pool *op, __u32 idx);
-int lov_ost_pool_free(struct ost_pool *op);
+/* lu_tgt_pool methods */
+int lov_ost_pool_init(struct lu_tgt_pool *op, unsigned int count);
+int lov_ost_pool_extend(struct lu_tgt_pool *op, unsigned int min_count);
+int lov_ost_pool_add(struct lu_tgt_pool *op, __u32 idx, unsigned int min_count);
+int lov_ost_pool_remove(struct lu_tgt_pool *op, __u32 idx);
+int lov_ost_pool_free(struct lu_tgt_pool *op);
/* high level pool methods */
int lov_pool_new(struct obd_device *obd, char *poolname);
static inline struct obd_device *lov2obd(const struct lov_obd *lov)
{
- return container_of0(lov, struct obd_device, u.lov);
+ return container_of_safe(lov, struct obd_device, u.lov);
}
static inline void lov_lsm2layout(struct lov_stripe_md *lsm,