Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp8788170imu; Thu, 15 Nov 2018 18:06:28 -0800 (PST) X-Google-Smtp-Source: AJdET5dbzQeIrTvpiJLiIacYHiTurH9VMppbeVGIfvbRaY8RdAaLgRPUHonyIqzjbMiugMjO0H2o X-Received: by 2002:a63:790e:: with SMTP id u14mr8081061pgc.452.1542333988343; Thu, 15 Nov 2018 18:06:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542333988; cv=none; d=google.com; s=arc-20160816; b=zVtXVduOhilwuEYqkTOfVBENzbdwY8KR0XqAZfA1wBXn2uMTKjCeKIwUdhzBP03+/D dZ2LZpb544VlRq4JBkd3dHUYA8OFmY3GwZ5RKhgYaqJT5LhEg3v5q4kNXIwtvOZPxyQT TUZQmV2n3d1qQeEM6KJbF3q5EJV87wA1WbP0PD8zQBjgm5OVxQ7Y01u94996y/zVuVvO yiPnwPCEQ2MFMzUGPVyY6l91IzqdCRkJD+RNvehbv7ejeaQWzBVjIWUlmqs+SWf+6Wv6 9QgAn7Yom3cVp/vHJr8bOgtpn0sXgmPCKqCVc4S7Z8TMPkHB10rfEuhx0jlInNf7arAK PHvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=Tk4zNnRl3iveRzr8VK3BRLGltG68AkALc7dg+BBUT20=; b=ogblbkFulx2//04W7/6KxQDJZ+q0OnVAoQ96sJZSRl8s/kKHIw+LijqXOG2bJaPqqt AJXBYdHmozSy/A3SJ8uUGV1DNNMagpCKGZBZHqUyU/FqQUwlaz/nQtfbze/8PHPTGrdC dEQZscJBxqN1GgTD+JCP81cjs7pJU/PRsoQnInCR2d/xqPcYGQjV3G53A+rWrr2+VYLD EjOz/beky4mdQ3PmNpQ4nyhusRjvC3KXaeW21qwf+vfpGpJ1/bDnfsUoCJ8n/T2b/lc6 //Kh/ZD/K0AG2m3tzFo+x6m+W3z+Gb7KLe60hAMpvlTD7ggj4doVlPYFOXiSSaOCdJ5l sX+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@osandov-com.20150623.gappssmtp.com header.s=20150623 header.b=NOOIr37k; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h13si6209080pgk.179.2018.11.15.18.06.13; Thu, 15 Nov 2018 18:06:28 -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; dkim=pass header.i=@osandov-com.20150623.gappssmtp.com header.s=20150623 header.b=NOOIr37k; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389253AbeKPMQD (ORCPT + 99 others); Fri, 16 Nov 2018 07:16:03 -0500 Received: from mail-pf1-f193.google.com ([209.85.210.193]:40165 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389006AbeKPMQD (ORCPT ); Fri, 16 Nov 2018 07:16:03 -0500 Received: by mail-pf1-f193.google.com with SMTP id x2-v6so10601858pfm.7 for ; Thu, 15 Nov 2018 18:05:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osandov-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=Tk4zNnRl3iveRzr8VK3BRLGltG68AkALc7dg+BBUT20=; b=NOOIr37kMhSPPEh4ThKn2PW78U00DXit+OJMUDU7rUlCiAhyxflrXohn8zcOMK/7l/ +bXGEUYbes0UROImsRGND5Ic3+0Nhs/AG4lN0QOqPdYHBtSPT+1IcYhF451qs0ZmVbVt 6b7S8Mws9hiUZnwp7VtXrFf2hU9EOMEmuKqB6HnH4uKITJXBgOmEpI98UIvplxof/tir x/Zl/Ux/OOxBlGrw7Dw1qev30vwfLfIpBdD8iIXnG6mIMaWLTcQXf6ldDaPt3MUANg7p tInPs235BNbt8zBzJhK8YXR2GzFm0zWZqRbh21MzJ83LVmDqgffBY982ZbRoz41vql2p Ko/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=Tk4zNnRl3iveRzr8VK3BRLGltG68AkALc7dg+BBUT20=; b=dbjLLgP/h86gNNZEU9vxqVpiB1jFgHBFxdD1fHaXOl66Iu6stX8A/zREVvHNKUZbdH jVmGTH+srpCdl/VFHoncAglA+UKYMdabNxNCJv97xw0a1d9Y7M8uGdSDw0UiWbS0va8/ jEmH6h28xXtNOvP3p17GFGa3AmAIymm0TAvzzRmUz8wxqB66/0rGebrLB5RY8W6Pz01W WGkFaYxYc7ExsqKeO4MJw7zXWPw9ZgJ7umgLsAsAWVz3ioncaobxeg6rs6GkECPVQdB1 8zIVRQCF0mExm74Y6azz32u9mZK0uLLvavBZWPcQ5k+aXAAZdsiXlHB8AjkK/nBEE2Wc sQeA== X-Gm-Message-State: AGRZ1gKMn3lOekzDuKuiz7MuDCvs3DyBLadNxFcexaW8tvn7ecwX2sNW IykjPdVD/ecUnkp2dIF4hI3efw== X-Received: by 2002:a63:101:: with SMTP id 1mr8156529pgb.152.1542333935862; Thu, 15 Nov 2018 18:05:35 -0800 (PST) Received: from vader ([64.114.255.97]) by smtp.gmail.com with ESMTPSA id s37sm25513907pgm.19.2018.11.15.18.05.34 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 15 Nov 2018 18:05:35 -0800 (PST) Date: Thu, 15 Nov 2018 18:05:33 -0800 From: Omar Sandoval To: Ming Lei Cc: Jens Axboe , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Dave Chinner , Kent Overstreet , Mike Snitzer , dm-devel@redhat.com, Alexander Viro , linux-fsdevel@vger.kernel.org, Shaohua Li , linux-raid@vger.kernel.org, linux-erofs@lists.ozlabs.org, David Sterba , linux-btrfs@vger.kernel.org, "Darrick J . Wong" , linux-xfs@vger.kernel.org, Gao Xiang , Christoph Hellwig , Theodore Ts'o , linux-ext4@vger.kernel.org, Coly Li , linux-bcache@vger.kernel.org, Boaz Harrosh , Bob Peterson , cluster-devel@redhat.com Subject: Re: [PATCH V10 16/19] block: document usage of bio iterator helpers Message-ID: <20181116020533.GK23828@vader> References: <20181115085306.9910-1-ming.lei@redhat.com> <20181115085306.9910-17-ming.lei@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181115085306.9910-17-ming.lei@redhat.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Nov 15, 2018 at 04:53:03PM +0800, Ming Lei wrote: > Now multi-page bvec is supported, some helpers may return page by > page, meantime some may return segment by segment, this patch > documents the usage. > > Cc: Dave Chinner > Cc: Kent Overstreet > Cc: Mike Snitzer > Cc: dm-devel@redhat.com > Cc: Alexander Viro > Cc: linux-fsdevel@vger.kernel.org > Cc: Shaohua Li > Cc: linux-raid@vger.kernel.org > Cc: linux-erofs@lists.ozlabs.org > Cc: David Sterba > Cc: linux-btrfs@vger.kernel.org > Cc: Darrick J. Wong > Cc: linux-xfs@vger.kernel.org > Cc: Gao Xiang > Cc: Christoph Hellwig > Cc: Theodore Ts'o > Cc: linux-ext4@vger.kernel.org > Cc: Coly Li > Cc: linux-bcache@vger.kernel.org > Cc: Boaz Harrosh > Cc: Bob Peterson > Cc: cluster-devel@redhat.com > Signed-off-by: Ming Lei > --- > Documentation/block/biovecs.txt | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/Documentation/block/biovecs.txt b/Documentation/block/biovecs.txt > index 25689584e6e0..bfafb70d0d9e 100644 > --- a/Documentation/block/biovecs.txt > +++ b/Documentation/block/biovecs.txt > @@ -117,3 +117,29 @@ Other implications: > size limitations and the limitations of the underlying devices. Thus > there's no need to define ->merge_bvec_fn() callbacks for individual block > drivers. > + > +Usage of helpers: > +================= > + > +* The following helpers whose names have the suffix of "_all" can only be used > +on non-BIO_CLONED bio, and usually they are used by filesystem code, and driver > +shouldn't use them because bio may have been split before they got to the driver: Putting an english teacher hat on, this is quite the run-on sentence. How about: * The following helpers whose names have the suffix of "_all" can only be used on non-BIO_CLONED bio. They are usually used by filesystem code. Drivers shouldn't use them because the bio may have been split before it reached the driver. Maybe also an explanation of why the filesystem would want to use these? > + bio_for_each_segment_all() > + bio_first_bvec_all() > + bio_first_page_all() > + bio_last_bvec_all() > + > +* The following helpers iterate over single-page bvec, and the local > +variable of 'struct bio_vec' or the reference records single-page IO > +vector during the itearation: * The following helpers iterate over single-page bvecs. The passed 'struct bio_vec' will contain a single-page IO vector during the iteration. > + bio_for_each_segment() > + bio_for_each_segment_all() > + > +* The following helper iterates over multi-page bvec, and each bvec may > +include multiple physically contiguous pages, and the local variable of > +'struct bio_vec' or the reference records multi-page IO vector during the > +itearation: * The following helper iterates over multi-page bvecs. Each bvec may include multiple physically contiguous pages. The passed 'struct bio_vec' will contain a multi-page IO vector during the iteration. > + bio_for_each_bvec() > -- > 2.9.5 >