bio: move the slab pointer inside the bio_set
authorJens Axboe <jens.axboe@oracle.com>
Wed, 22 Oct 2008 18:32:58 +0000 (20:32 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Mon, 29 Dec 2008 07:28:46 +0000 (08:28 +0100)
In preparation for adding differently sized bios.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
fs/bio.c
include/linux/bio.h

index eb6b4683a26538ca41118966a586dc9132e013ae..1ab8986b0411aea990f828ad82e04f4f7ab9b864 100644 (file)
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -1404,12 +1404,15 @@ void bioset_free(struct bio_set *bs)
 
 struct bio_set *bioset_create(int bio_pool_size, int bvec_pool_size)
 {
-       struct bio_set *bs = kzalloc(sizeof(*bs), GFP_KERNEL);
+       struct bio_set *bs;
 
+       bs = kzalloc(sizeof(*bs), GFP_KERNEL);
        if (!bs)
                return NULL;
 
-       bs->bio_pool = mempool_create_slab_pool(bio_pool_size, bio_slab);
+       bs->bio_slab = bio_slab;
+
+       bs->bio_pool = mempool_create_slab_pool(bio_pool_size, bs->bio_slab);
        if (!bs->bio_pool)
                goto bad;
 
index d76e4bf22f29ef7bda53ece9292df85c41bf6ba3..9340098d75dc5e127b9b8210a84092432ecc467f 100644 (file)
@@ -400,6 +400,7 @@ static inline void bio_set_completion_cpu(struct bio *bio, unsigned int cpu)
 #define BIOVEC_MAX_IDX (BIOVEC_NR_POOLS - 1)
 
 struct bio_set {
+       struct kmem_cache *bio_slab;
        mempool_t *bio_pool;
 #if defined(CONFIG_BLK_DEV_INTEGRITY)
        mempool_t *bio_integrity_pool;