From: Kent Overstreet <koverstreet@google.com>
To: linux-bcache@vger.kernel.org, linux-kernel@vger.kernel.org,
dm-devel@redhat.com
Cc: axboe@kernel.dk, Kent Overstreet <koverstreet@google.com>,
tj@kernel.org, neilb@suse.de
Subject: [PATCH v2 23/26] raid1: use bio_alloc_pages()
Date: Mon, 10 Sep 2012 17:22:34 -0700 [thread overview]
Message-ID: <1347322957-25260-24-git-send-email-koverstreet@google.com> (raw)
In-Reply-To: <1347322957-25260-1-git-send-email-koverstreet@google.com>
Signed-off-by: Kent Overstreet <koverstreet@google.com>
CC: Jens Axboe <axboe@kernel.dk>
CC: NeilBrown <neilb@suse.de>
---
drivers/md/raid1.c | 16 +++-------------
1 file changed, 3 insertions(+), 13 deletions(-)
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index d30b4cb..18b743a 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -92,7 +92,6 @@ static void r1bio_pool_free(void *r1_bio, void *data)
static void * r1buf_pool_alloc(gfp_t gfp_flags, void *data)
{
struct pool_info *pi = data;
- struct page *page;
struct r1bio *r1_bio;
struct bio *bio;
int i, j;
@@ -122,14 +121,10 @@ static void * r1buf_pool_alloc(gfp_t gfp_flags, void *data)
j = 1;
while(j--) {
bio = r1_bio->bios[j];
- for (i = 0; i < RESYNC_PAGES; i++) {
- page = alloc_page(gfp_flags);
- if (unlikely(!page))
- goto out_free_pages;
+ bio->bi_vcnt = RESYNC_PAGES;
- bio->bi_io_vec[i].bv_page = page;
- bio->bi_vcnt = i+1;
- }
+ if (bio_alloc_pages(bio, gfp_flags))
+ goto out_free_bio;
}
/* If not user-requests, copy the page pointers to all bios */
if (!test_bit(MD_RECOVERY_REQUESTED, &pi->mddev->recovery)) {
@@ -143,11 +138,6 @@ static void * r1buf_pool_alloc(gfp_t gfp_flags, void *data)
return r1_bio;
-out_free_pages:
- for (j=0 ; j < pi->raid_disks; j++)
- for (i=0; i < r1_bio->bios[j]->bi_vcnt ; i++)
- put_page(r1_bio->bios[j]->bi_io_vec[i].bv_page);
- j = -1;
out_free_bio:
while (++j < pi->raid_disks)
bio_put(r1_bio->bios[j]);
--
1.7.12
next prev parent reply other threads:[~2012-09-11 0:24 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-11 0:22 [PATCH v2 00/26] Prep work for immutable bio vecs Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 01/26] block: Convert integrity to bvec_alloc_bs(), and a bugfix Kent Overstreet
2012-09-11 20:36 ` [dm-devel] " Vivek Goyal
2012-09-11 20:48 ` Kent Overstreet
2012-09-11 22:07 ` Kent Overstreet
2012-09-12 19:39 ` Martin K. Petersen
2012-09-17 21:08 ` Kent Overstreet
2012-09-20 21:53 ` Tejun Heo
2012-09-11 0:22 ` [PATCH v2 02/26] block: Add bio_advance() Kent Overstreet
2012-09-20 21:58 ` Tejun Heo
2012-09-20 23:13 ` Kent Overstreet
2012-09-20 23:25 ` Tejun Heo
2012-09-20 23:38 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 03/26] block: Refactor blk_update_request() Kent Overstreet
2012-09-20 23:20 ` Tejun Heo
2012-09-20 23:36 ` Kent Overstreet
2012-09-20 23:41 ` Tejun Heo
2012-09-20 23:50 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 04/26] md: Convert md_trim_bio() to use bio_advance() Kent Overstreet
2012-09-20 23:27 ` Tejun Heo
2012-09-11 0:22 ` [PATCH v2 05/26] block: Add bio_end() Kent Overstreet
2012-09-17 9:17 ` Steven Whitehouse
2012-09-20 23:32 ` Tejun Heo
2012-09-20 23:44 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 06/26] block: Use bio_sectors() more consistently Kent Overstreet
2012-09-20 23:36 ` Tejun Heo
2012-09-20 23:47 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 07/26] block: Don't use bi_idx in bio_split() or require it to be 0 Kent Overstreet
2012-09-20 23:45 ` Tejun Heo
2012-09-21 0:00 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 08/26] block: Remove bi_idx references Kent Overstreet
2012-09-20 23:49 ` Tejun Heo
2012-09-21 0:04 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 09/26] block: Remove some unnecessary bi_vcnt usage Kent Overstreet
2012-09-20 23:51 ` Tejun Heo
2012-09-11 0:22 ` [PATCH v2 10/26] block: Add submit_bio_wait(), remove from md Kent Overstreet
2012-09-20 23:56 ` Tejun Heo
2012-09-21 0:06 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 11/26] raid10: Use bio_reset() Kent Overstreet
2012-09-20 23:59 ` Tejun Heo
2012-09-11 0:22 ` [PATCH v2 12/26] raid1: use bio_reset() Kent Overstreet
2012-09-11 4:59 ` NeilBrown
2012-09-11 18:28 ` Kent Overstreet
2012-09-11 21:17 ` NeilBrown
2012-09-11 0:22 ` [PATCH v2 13/26] raid5: " Kent Overstreet
2012-09-11 5:03 ` NeilBrown
2012-09-11 19:26 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 14/26] raid1: Refactor narrow_write_error() to not use bi_idx Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 15/26] block: Add bio_copy_data() Kent Overstreet
2012-09-21 0:06 ` Tejun Heo
2012-09-21 0:09 ` Kent Overstreet
2012-09-21 0:15 ` Tejun Heo
2012-09-21 0:09 ` Tejun Heo
2012-09-21 0:13 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 16/26] pktcdvd: use bio_copy_data() Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 17/26] pktcdvd: Use bio_reset() in disabled code to kill bi_idx usage Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 18/26] raid1: use bio_copy_data() Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 19/26] bounce: Refactor __blk_queue_bounce to not use bi_io_vec Kent Overstreet
2012-09-21 0:25 ` Tejun Heo
2012-09-21 0:29 ` Kent Overstreet
2012-09-21 0:27 ` Tejun Heo
2012-09-21 0:34 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 20/26] block: Add bio_for_each_segment_all() Kent Overstreet
2012-09-21 0:35 ` Tejun Heo
2012-09-11 0:22 ` [PATCH v2 21/26] block: Convert some code to bio_for_each_segment_all() Kent Overstreet
2012-09-21 0:38 ` Tejun Heo
2012-09-21 0:50 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 22/26] block: Add bio_alloc_pages() Kent Overstreet
2012-09-21 0:47 ` Tejun Heo
2012-09-21 4:50 ` Kent Overstreet
2012-09-11 0:22 ` Kent Overstreet [this message]
2012-09-21 0:48 ` [PATCH v2 23/26] raid1: use bio_alloc_pages() Tejun Heo
2012-09-21 4:51 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 24/26] block: Add an explicit bio flag for bios that own their bvec Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 25/26] bio-integrity: Add explicit field for owner of bip_buf Kent Overstreet
2012-09-12 19:41 ` Martin K. Petersen
2012-09-17 21:09 ` Kent Overstreet
2012-09-11 0:22 ` [PATCH v2 26/26] block: Add BIO_SUBMITTED flag, kill BIO_CLONED Kent Overstreet
2012-09-11 5:22 ` [PATCH v2 00/26] Prep work for immutable bio vecs NeilBrown
2012-09-20 23:22 ` Tejun Heo
2012-10-15 20:08 [PATCH v4 00/24] " Kent Overstreet
2012-10-15 20:09 ` [PATCH v2 23/26] raid1: use bio_alloc_pages() Kent Overstreet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1347322957-25260-24-git-send-email-koverstreet@google.com \
--to=koverstreet@google.com \
--cc=axboe@kernel.dk \
--cc=dm-devel@redhat.com \
--cc=linux-bcache@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=neilb@suse.de \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®