diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2008-12-10 09:35:05 -0500 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2008-12-29 02:29:23 -0500 |
commit | bb799ca0202a360fa74d5f17039b9100caebdde7 (patch) | |
tree | 048b6cedfd2644edd82a606db6d9e8b19d31328b /drivers/md | |
parent | 1b4344986926da324b5cd10b683e5a1a5e1b7db3 (diff) |
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 'drivers/md')
-rw-r--r-- | drivers/md/dm-crypt.c | 2 | ||||
-rw-r--r-- | drivers/md/dm-io.c | 2 | ||||
-rw-r--r-- | drivers/md/dm.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c index ce26c84af064..3326750ec02c 100644 --- a/drivers/md/dm-crypt.c +++ b/drivers/md/dm-crypt.c | |||
@@ -1060,7 +1060,7 @@ static int crypt_ctr(struct dm_target *ti, unsigned int argc, char **argv) | |||
1060 | goto bad_page_pool; | 1060 | goto bad_page_pool; |
1061 | } | 1061 | } |
1062 | 1062 | ||
1063 | cc->bs = bioset_create(MIN_IOS, MIN_IOS); | 1063 | cc->bs = bioset_create(MIN_IOS, 0); |
1064 | if (!cc->bs) { | 1064 | if (!cc->bs) { |
1065 | ti->error = "Cannot allocate crypt bioset"; | 1065 | ti->error = "Cannot allocate crypt bioset"; |
1066 | goto bad_bs; | 1066 | goto bad_bs; |
diff --git a/drivers/md/dm-io.c b/drivers/md/dm-io.c index 2fd6d4450637..a34338567a2a 100644 --- a/drivers/md/dm-io.c +++ b/drivers/md/dm-io.c | |||
@@ -56,7 +56,7 @@ struct dm_io_client *dm_io_client_create(unsigned num_pages) | |||
56 | if (!client->pool) | 56 | if (!client->pool) |
57 | goto bad; | 57 | goto bad; |
58 | 58 | ||
59 | client->bios = bioset_create(16, 16); | 59 | client->bios = bioset_create(16, 0); |
60 | if (!client->bios) | 60 | if (!client->bios) |
61 | goto bad; | 61 | goto bad; |
62 | 62 | ||
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 343094c3feeb..421c9f02d8ca 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c | |||
@@ -1093,7 +1093,7 @@ static struct mapped_device *alloc_dev(int minor) | |||
1093 | if (!md->tio_pool) | 1093 | if (!md->tio_pool) |
1094 | goto bad_tio_pool; | 1094 | goto bad_tio_pool; |
1095 | 1095 | ||
1096 | md->bs = bioset_create(16, 16); | 1096 | md->bs = bioset_create(16, 0); |
1097 | if (!md->bs) | 1097 | if (!md->bs) |
1098 | goto bad_no_bioset; | 1098 | goto bad_no_bioset; |
1099 | 1099 | ||