Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031353AbbDWXGL (ORCPT ); Thu, 23 Apr 2015 19:06:11 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:45077 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1031239AbbDWXFL (ORCPT ); Thu, 23 Apr 2015 19:05:11 -0400 X-AuditID: cbfee61a-f79516d000006302-02-55397aa67ea1 From: Ming Lin To: linux-kernel@vger.kernel.org Cc: Christoph Hellwig , Kent Overstreet , Jens Axboe , Dongsu Park , Neil Brown , linux-raid@vger.kernel.org, Ming Lin Subject: [PATCH v3 2/4] md/raid10: make sync_request_write() call bio_copy_data() Date: Thu, 23 Apr 2015 16:04:33 -0700 Message-id: <1429830275-6792-3-git-send-email-mlin@kernel.org> X-Mailer: git-send-email 1.9.1 In-reply-to: <1429830275-6792-1-git-send-email-mlin@kernel.org> References: <1429830275-6792-1-git-send-email-mlin@kernel.org> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrALMWRmVeSWpSXmKPExsVy+t9jQd1lVZahBteb1CxW3+1ns7i8ehW7 xekJi5gsjjRVWVzeNYfNon3+LkaL89tOslrsnd/A4sDhsXPWXXaPzSu0PC6fLfXYtKqTzePP n8/MHptPV3t83iQXwB7FZZOSmpNZllqkb5fAlfHj1hLmgn7Biv4JxxgbGH/wdjFyckgImEjs W3OQHcIWk7hwbz1bFyMXh5DAdEaJmTM7mCGcn4wSi5r3MINUsQkoSBxct4EJxBYBsjf3PmMF KWIW+MUo8bH7JdgoYYFgiTW337CA2CwCqhKt+38ygti8AnYSc07uZoNYJydx8thkVhCbU8Be 4uvJx2BxIaCalbenME1g5F3AyLCKUTS1ILmgOCk911CvODG3uDQvXS85P3cTIzjcnkntYFzZ YHGIUYCDUYmH90ORRagQa2JZcWXuIUYJDmYlEV72cstQId6UxMqq1KL8+KLSnNTiQ4zSHCxK 4rxzdOVChQTSE0tSs1NTC1KLYLJMHJxSDYwXTVgtjvRuib1Sdkdssfrs9tUp4uUpSyX1phZf qbzrU3eCb+vWXTJ79E99lze63yVf80p04bY9d13nuRQJflzTvn2D8cF5udPuKa50ZFqWr3mZ bfq6vpBrOo6fTpuI1u+dJui8ojLnz4UC8xVTF8gu/p6m8HAKd3OK3sr8Hy1SsuZ3WjS1otyU WIozEg21mIuKEwHVbF66MwIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2371 Lines: 70 From: Kent Overstreet Refactor sync_request_write() of md/raid10 to use bio_copy_data() instead of open coding bio_vec iterations. Cc: Christoph Hellwig Cc: Neil Brown Cc: linux-raid@vger.kernel.org Signed-off-by: Kent Overstreet [dpark: add more description in commit message] Signed-off-by: Dongsu Park Signed-off-by: Ming Lin --- drivers/md/raid10.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index a7196c4..02e33f1 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -2097,18 +2097,11 @@ static void sync_request_write(struct mddev *mddev, struct r10bio *r10_bio) tbio->bi_vcnt = vcnt; tbio->bi_iter.bi_size = r10_bio->sectors << 9; tbio->bi_rw = WRITE; - tbio->bi_private = r10_bio; tbio->bi_iter.bi_sector = r10_bio->devs[i].addr; - - for (j=0; j < vcnt ; j++) { - tbio->bi_io_vec[j].bv_offset = 0; - tbio->bi_io_vec[j].bv_len = PAGE_SIZE; - - memcpy(page_address(tbio->bi_io_vec[j].bv_page), - page_address(fbio->bi_io_vec[j].bv_page), - PAGE_SIZE); - } tbio->bi_end_io = end_sync_write; + tbio->bi_private = r10_bio; + + bio_copy_data(tbio, fbio); d = r10_bio->devs[i].devnum; atomic_inc(&conf->mirrors[d].rdev->nr_pending); @@ -2124,17 +2117,14 @@ static void sync_request_write(struct mddev *mddev, struct r10bio *r10_bio) * that are active */ for (i = 0; i < conf->copies; i++) { - int j, d; + int d; tbio = r10_bio->devs[i].repl_bio; if (!tbio || !tbio->bi_end_io) continue; if (r10_bio->devs[i].bio->bi_end_io != end_sync_write && r10_bio->devs[i].bio != fbio) - for (j = 0; j < vcnt; j++) - memcpy(page_address(tbio->bi_io_vec[j].bv_page), - page_address(fbio->bi_io_vec[j].bv_page), - PAGE_SIZE); + bio_copy_data(tbio, fbio); d = r10_bio->devs[i].devnum; atomic_inc(&r10_bio->remaining); md_sync_acct(conf->mirrors[d].replacement->bdev, -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/