Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1502748imu; Tue, 20 Nov 2018 19:45:16 -0800 (PST) X-Google-Smtp-Source: AFSGD/V60muY7sZIAy/22+OgFZcJtp7SdWpxx6tehozsYf7Z4RtDwUwnqZS3k/KKNdvZ3fCqCLYC X-Received: by 2002:a17:902:201:: with SMTP id 1mr4246181plc.62.1542771916908; Tue, 20 Nov 2018 19:45:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542771916; cv=none; d=google.com; s=arc-20160816; b=CZbWEoDqqJWItyEu0dYszUvh4jphOKYTOREOgiE6DJjbYnyS+yeRhmp0ZMnLNsEY9B im4MTQoWUgJaT5pQBmjZhmTJ6uJiv0L6x4FK/NxIVg7ewNW7vOzoYQipvgj3GmQxod3x S0xNQmFNAd9iqW3pCHCrjAjlZfOftwwARvHh9qJNkG7WNFSlSg4NMoGS3s2KvD6qjFhd gUJEwVrpRGVrRWz8mf8zJUwfP+2+YEBteIMNaXtZ4EcH8pudkSRUuUOSs3flzFDsUc36 W/nChR8l/NBD/74cWIXaU/1FOhKtJLneSyvZDEkV9Z2UfV7YWBXRA+JtyKprR48UlJMD zYEA== 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=IlLTWLk28CoX+iGvEA9mJmelkxne3MUdqKGOcV+1Va4=; b=LdlDnJjC4Ne5LOfJlSNpXMgV1f/HO3z9wKFTj9OoiwWZdg2JuIFuhdm7zpkFEXSywT s6tTNB34cf4Tf7TJeUgjr/NzPmqwHQCannzTLLsdhxvuOAYtq4Z003TkSWQNq7Yga41I yojXdXmzhukg7/mxlJUMi4/bl1Z61DNyJRcRNe/QW3cz9EEpvfnvtToIAIizyhQzJ7Gv BaWYWK/ZgHOLP8QavdhpOi1ywOst8NYG693T7IcnU2nzZ5sHkF64aNe060lBHRbk7L5q 3GFdw3e2S2g0+H+ZIuumMc3Fdr0Q8c+HBndOv1hZKaHji5bTzeB2voiMZo+3D7a95bvF hf0g== 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 k22si18768053pgl.29.2018.11.20.19.45.02; Tue, 20 Nov 2018 19:45:16 -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 S1728045AbeKUOAD (ORCPT + 99 others); Wed, 21 Nov 2018 09:00:03 -0500 Received: from mx1.redhat.com ([209.132.183.28]:51428 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727092AbeKUOAC (ORCPT ); Wed, 21 Nov 2018 09:00:02 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 71CCD637FC; Wed, 21 Nov 2018 03:27:31 +0000 (UTC) Received: from localhost (ovpn-8-21.pek2.redhat.com [10.72.8.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id CAA9D60BF6; Wed, 21 Nov 2018 03:27:18 +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, Shaohua Li , 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 V11 11/19] bcache: avoid to use bio_for_each_segment_all() in bch_bio_alloc_pages() Date: Wed, 21 Nov 2018 11:23:19 +0800 Message-Id: <20181121032327.8434-12-ming.lei@redhat.com> In-Reply-To: <20181121032327.8434-1-ming.lei@redhat.com> References: <20181121032327.8434-1-ming.lei@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 21 Nov 2018 03:27:31 +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 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