X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=include%2Flinux%2Fmbcache.h;h=8e5a10410a30e31d4fbde376d6686354d6903e8a;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=7738749e128550a9a6fc0ce330cccf9e3488401b;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/include/linux/mbcache.h b/include/linux/mbcache.h index 7738749e1..8e5a10410 100644 --- a/include/linux/mbcache.h +++ b/include/linux/mbcache.h @@ -7,39 +7,22 @@ /* Hardwire the number of additional indexes */ #define MB_CACHE_INDEXES_COUNT 1 -struct mb_cache_entry; - -struct mb_cache_op { - int (*free)(struct mb_cache_entry *, int); -}; - -struct mb_cache { - struct list_head c_cache_list; - const char *c_name; - struct mb_cache_op c_op; - atomic_t c_entry_count; - int c_bucket_bits; -#ifndef MB_CACHE_INDEXES_COUNT - int c_indexes_count; -#endif - kmem_cache_t *c_entry_cache; - struct list_head *c_block_hash; - struct list_head *c_indexes_hash[0]; -}; - -struct mb_cache_entry_index { - struct list_head o_list; - unsigned int o_key; -}; - struct mb_cache_entry { struct list_head e_lru_list; struct mb_cache *e_cache; - atomic_t e_used; + unsigned short e_used; + unsigned short e_queued; struct block_device *e_bdev; sector_t e_block; struct list_head e_block_list; - struct mb_cache_entry_index e_indexes[0]; + struct { + struct list_head o_list; + unsigned int o_key; + } e_indexes[0]; +}; + +struct mb_cache_op { + int (*free)(struct mb_cache_entry *, int); }; /* Functions on caches */ @@ -54,11 +37,8 @@ void mb_cache_destroy(struct mb_cache *); struct mb_cache_entry *mb_cache_entry_alloc(struct mb_cache *); int mb_cache_entry_insert(struct mb_cache_entry *, struct block_device *, sector_t, unsigned int[]); -void mb_cache_entry_rehash(struct mb_cache_entry *, unsigned int[]); void mb_cache_entry_release(struct mb_cache_entry *); -void mb_cache_entry_takeout(struct mb_cache_entry *); void mb_cache_entry_free(struct mb_cache_entry *); -struct mb_cache_entry *mb_cache_entry_dup(struct mb_cache_entry *); struct mb_cache_entry *mb_cache_entry_get(struct mb_cache *, struct block_device *, sector_t);