diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2008-12-10 15:35:05 +0100 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2008-12-29 08:29:23 +0100 |
commit | bb799ca0202a360fa74d5f17039b9100caebdde7 (patch) | |
tree | 048b6cedfd2644edd82a606db6d9e8b19d31328b /fs/bio-integrity.c | |
parent | bio: move the slab pointer inside the bio_set (diff) | |
download | linux-bb799ca0202a360fa74d5f17039b9100caebdde7.tar.xz linux-bb799ca0202a360fa74d5f17039b9100caebdde7.zip |
bio: allow individual slabs in the bio_set
Instead of having a global bio slab cache, add a reference to one
in each bio_set that is created. This allows for personalized slabs
in each bio_set, so that they can have bios of different sizes.
This means we can personalize the bios we return. File systems may
want to embed the bio inside another structure, to avoid allocation
more items (and stuffing them in ->bi_private) after the get a bio.
Or we may want to embed a number of bio_vecs directly at the end
of a bio, to avoid doing two allocations to return a bio. This is now
possible.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'fs/bio-integrity.c')
-rw-r--r-- | fs/bio-integrity.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/bio-integrity.c b/fs/bio-integrity.c index 19caf7c962ac..77ebc3c263d6 100644 --- a/fs/bio-integrity.c +++ b/fs/bio-integrity.c @@ -111,7 +111,7 @@ void bio_integrity_free(struct bio *bio, struct bio_set *bs) && bip->bip_buf != NULL) kfree(bip->bip_buf); - mempool_free(bip->bip_vec, bs->bvec_pools[bip->bip_pool]); + bvec_free_bs(bs, bip->bip_vec, bip->bip_pool); mempool_free(bip, bs->bio_integrity_pool); bio->bi_integrity = NULL; |