-static void lov_pool_getref(struct pool_desc *pool)
-{
- CDEBUG(D_INFO, "pool %p\n", pool);
- cfs_atomic_inc(&pool->pool_refcount);
-}
-
-void lov_pool_putref(struct pool_desc *pool)
-{
- CDEBUG(D_INFO, "pool %p\n", pool);
- if (cfs_atomic_dec_and_test(&pool->pool_refcount)) {
- LASSERT(cfs_hlist_unhashed(&pool->pool_hash));
- LASSERT(cfs_list_empty(&pool->pool_list));
- LASSERT(pool->pool_proc_entry == NULL);
- lov_ost_pool_free(&(pool->pool_rr.lqr_pool));
- lov_ost_pool_free(&(pool->pool_obds));
- OBD_FREE_PTR(pool);
- EXIT;
- }
-}
-
-void lov_pool_putref_locked(struct pool_desc *pool)
-{
- CDEBUG(D_INFO, "pool %p\n", pool);
- LASSERT(cfs_atomic_read(&pool->pool_refcount) > 1);
-
- cfs_atomic_dec(&pool->pool_refcount);
-}
-
-/*
- * hash function using a Rotating Hash algorithm
- * Knuth, D. The Art of Computer Programming,
- * Volume 3: Sorting and Searching,
- * Chapter 6.4.
- * Addison Wesley, 1973
- */
-static __u32 pool_hashfn(cfs_hash_t *hash_body, const void *key, unsigned mask)
-{
- int i;
- __u32 result;
- char *poolname;
-
- result = 0;
- poolname = (char *)key;
- for (i = 0; i < LOV_MAXPOOLNAME; i++) {
- if (poolname[i] == '\0')
- break;
- result = (result << 4)^(result >> 28) ^ poolname[i];
- }
- return (result % mask);
-}