Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp579052imu; Fri, 11 Jan 2019 05:38:26 -0800 (PST) X-Google-Smtp-Source: ALg8bN6ufr1o3gd85Nn/HWwt0K1RkRc0ZxdoBozCo61rpBaA1wrebVbx1jdF57c3ccdSb/sPGAR4 X-Received: by 2002:a63:e101:: with SMTP id z1mr13425904pgh.310.1547213906307; Fri, 11 Jan 2019 05:38:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547213906; cv=none; d=google.com; s=arc-20160816; b=bmra0GcU6WS765qRVDh5xOJpMgjZUH0Dkkm6K6znfhZ564aJHR73HyfhtSfX/qsv7P rI0lmZDR0xkN1fxYFEjYriXL4jp8bvVinbdza0K3fwFryq7JrFtGSlh12Jkt48E8L+z8 FeHqPc0nxLguupk+Ja26KzJW6Yp0aEiGl75ezap85kYtE9do81XG3miR+je8q4N8748x xTa3bSUYJwxefwXsL0tEP5DpJnDg0a+XJlr5cpXHMEunhFQ3h3wYOwFvgtgEpyKRhI+d j7PnUP6+hZ91Ra+7kNjOyZyLjnCxiLjjJ8pTTlkn4bN87IOcGqA0TK9qQE3jPIhkbkox hVDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=xr6DahF5ogf42oUHn8yO+xHUQepi7gnUCentUFTY6cc=; b=y5sbCEaY1JyNjA1fFj8d58CWXLluHmPlzzZ1Vpt0fTtNMSjFfKTLiLSYQkh5wVSj3v RAyuUErw93usNRG3V50IMy59uTaOn+yKqFgVZVFarTs/1bxM+YsQ9TDCszsmTcsCgor8 CAGWokB8YYSs2/jKdAIaxV3Zxww9y8zPr/mBIfodZxAAzBfWIZ4QjF0w+rWCkcbYyeTF gqfIDRbs2ND25I0XAHT1DE5sb1jdr14hrqSC/3xB6m3uL0/1Xic6JEWfv4n4cSzK+PA1 T5MxfYCvF5r+2mm5rHW51wKT6NZjxCfjEYOA+shTaXvk9ZHDNIz4dW7gntBtrcPcw45K iyTw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q7si76752741pfa.99.2019.01.11.05.38.11; Fri, 11 Jan 2019 05:38:26 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732101AbfAKLFH (ORCPT + 99 others); Fri, 11 Jan 2019 06:05:07 -0500 Received: from mx1.redhat.com ([209.132.183.28]:51440 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729011AbfAKLFG (ORCPT ); Fri, 11 Jan 2019 06:05:06 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EBD9BC7901; Fri, 11 Jan 2019 11:05:05 +0000 (UTC) Received: from localhost (ovpn-8-28.pek2.redhat.com [10.72.8.28]) by smtp.corp.redhat.com (Postfix) with ESMTP id 55BE45D9C8; Fri, 11 Jan 2019 11:04:52 +0000 (UTC) From: Ming Lei To: Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Theodore Ts'o , Omar Sandoval , Sagi Grimberg , Dave Chinner , Kent Overstreet , Mike Snitzer , dm-devel@redhat.com, Alexander Viro , linux-fsdevel@vger.kernel.org, linux-raid@vger.kernel.org, David Sterba , linux-btrfs@vger.kernel.org, "Darrick J . Wong" , linux-xfs@vger.kernel.org, Gao Xiang , Christoph Hellwig , linux-ext4@vger.kernel.org, Coly Li , linux-bcache@vger.kernel.org, Boaz Harrosh , Bob Peterson , cluster-devel@redhat.com, Ming Lei Subject: [PATCH V13 13/19] bcache: avoid to use bio_for_each_segment_all() in bch_bio_alloc_pages() Date: Fri, 11 Jan 2019 19:01:21 +0800 Message-Id: <20190111110127.21664-14-ming.lei@redhat.com> In-Reply-To: <20190111110127.21664-1-ming.lei@redhat.com> References: <20190111110127.21664-1-ming.lei@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 11 Jan 2019 11:05:06 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org bch_bio_alloc_pages() is always called on one new bio, so it is safe to access the bvec table directly. Given it is the only kind of this case, open code the bvec table access since bio_for_each_segment_all() will be changed to support for iterating over multipage bvec. Acked-by: Coly Li Reviewed-by: Omar Sandoval Reviewed-by: Christoph Hellwig Signed-off-by: Ming Lei --- drivers/md/bcache/util.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/md/bcache/util.c b/drivers/md/bcache/util.c index 20eddeac1531..62fb917f7a4f 100644 --- a/drivers/md/bcache/util.c +++ b/drivers/md/bcache/util.c @@ -270,7 +270,11 @@ int bch_bio_alloc_pages(struct bio *bio, gfp_t gfp_mask) int i; struct bio_vec *bv; - bio_for_each_segment_all(bv, bio, i) { + /* + * This is called on freshly new bio, so it is safe to access the + * bvec table directly. + */ + for (i = 0, bv = bio->bi_io_vec; i < bio->bi_vcnt; bv++, i++) { bv->bv_page = alloc_page(gfp_mask); if (!bv->bv_page) { while (--bv >= bio->bi_io_vec) -- 2.9.5