diff options
author | Kent Overstreet <koverstreet@google.com> | 2012-09-06 18:35:02 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2012-09-09 04:35:39 -0400 |
commit | bf800ef1816b4283a885e55ad38068aec9711e4d (patch) | |
tree | c99cbe70b68ede65b478b3006a7ed7e34b453f3d /fs/exofs | |
parent | 3f86a82aeb03e6100f7ab39f4702e033a5e38166 (diff) |
block: Add bio_clone_bioset(), bio_clone_kmalloc()
Previously, there was bio_clone() but it only allocated from the fs bio
set; as a result various users were open coding it and using
__bio_clone().
This changes bio_clone() to become bio_clone_bioset(), and then we add
bio_clone() and bio_clone_kmalloc() as wrappers around it, making use of
the functionality the last patch adedd.
This will also help in a later patch changing how bio cloning works.
Signed-off-by: Kent Overstreet <koverstreet@google.com>
CC: Jens Axboe <axboe@kernel.dk>
CC: NeilBrown <neilb@suse.de>
CC: Alasdair Kergon <agk@redhat.com>
CC: Boaz Harrosh <bharrosh@panasas.com>
CC: Jeff Garzik <jeff@garzik.org>
Acked-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/exofs')
-rw-r--r-- | fs/exofs/ore.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/exofs/ore.c b/fs/exofs/ore.c index 1585db1aa365..f936cb50dc0d 100644 --- a/fs/exofs/ore.c +++ b/fs/exofs/ore.c | |||
@@ -814,8 +814,8 @@ static int _write_mirror(struct ore_io_state *ios, int cur_comp) | |||
814 | struct bio *bio; | 814 | struct bio *bio; |
815 | 815 | ||
816 | if (per_dev != master_dev) { | 816 | if (per_dev != master_dev) { |
817 | bio = bio_kmalloc(GFP_KERNEL, | 817 | bio = bio_clone_kmalloc(master_dev->bio, |
818 | master_dev->bio->bi_max_vecs); | 818 | GFP_KERNEL); |
819 | if (unlikely(!bio)) { | 819 | if (unlikely(!bio)) { |
820 | ORE_DBGMSG( | 820 | ORE_DBGMSG( |
821 | "Failed to allocate BIO size=%u\n", | 821 | "Failed to allocate BIO size=%u\n", |
@@ -824,7 +824,6 @@ static int _write_mirror(struct ore_io_state *ios, int cur_comp) | |||
824 | goto out; | 824 | goto out; |
825 | } | 825 | } |
826 | 826 | ||
827 | __bio_clone(bio, master_dev->bio); | ||
828 | bio->bi_bdev = NULL; | 827 | bio->bi_bdev = NULL; |
829 | bio->bi_next = NULL; | 828 | bio->bi_next = NULL; |
830 | per_dev->offset = master_dev->offset; | 829 | per_dev->offset = master_dev->offset; |