From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: Re: [PATCH 3/3] target: use vfs_bvec_read/write Date: Sun, 25 Jan 2015 14:43:04 +0100 Message-ID: <20150125134304.GA21974@lst.de> References: <1421593624-4462-1-git-send-email-hch@lst.de> <1421593624-4462-4-git-send-email-hch@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Christoph Hellwig , Al Viro , Jens Axboe , Nicholas Bellinger , linux-fsdevel@vger.kernel.org, target-devel@vger.kernel.org To: Ming Lei Return-path: Received: from verein.lst.de ([213.95.11.211]:54111 "EHLO newverein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753526AbbAYNnI (ORCPT ); Sun, 25 Jan 2015 08:43:08 -0500 Content-Disposition: inline In-Reply-To: Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Fri, Jan 23, 2015 at 10:08:01PM +0800, Ming Lei wrote: > > > > for_each_sg(sgl, sg, sgl_nents, i) { > > - iov[i].iov_len = sg->length; > > - iov[i].iov_base = kmap(sg_page(sg)) + sg->offset; > > - } > > + bvec[i].bv_page = sg_page(sg); > > + bvec[i].bv_len = sg->length; > > + bvec[i].bv_offset = sg->offset; > > Sorry, I have one question: I understand one bvec should only cover > one page, but > one sg may cover lots of pages, so could ITER_BVEC handle that correctly? Each scatterlist entry only contains a single page, which is returned by sg_page(sg). The existing code already relies on it because it kmaps that page.