From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-it0-f68.google.com ([209.85.214.68]:33004 "EHLO mail-it0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752470AbeGAVno (ORCPT ); Sun, 1 Jul 2018 17:43:44 -0400 Received: by mail-it0-f68.google.com with SMTP id k17-v6so7234581ita.0 for ; Sun, 01 Jul 2018 14:43:44 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <20180701062141.GA27281@lst.de> References: <20180615130209.1970-2-hch@lst.de> <20180629144444.28826-1-agruenba@redhat.com> <20180701062141.GA27281@lst.de> From: Andreas Gruenbacher Date: Sun, 1 Jul 2018 23:43:43 +0200 Message-ID: Subject: Re: [PATCH] iomap: Add inline data support to iomap_readpage_actor To: Christoph Hellwig Cc: cluster-devel , linux-ext4 , linux-fsdevel Content-Type: text/plain; charset="UTF-8" Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On 1 July 2018 at 08:21, Christoph Hellwig wrote: > Looks sensible, although I think it could use some more sanity checking > and a changelog. Does the version below work for you? Almost. > --- > From e4603b7acde9b77e7a4aad6038c7ac42ca35772d Mon Sep 17 00:00:00 2001 > From: Andreas Gruenbacher > Date: Fri, 29 Jun 2018 16:44:44 +0200 > Subject: iomap: Add inline data support to iomap_readpage_actor > > Just copy the inline data into the page using the existing helper. > > Signed-off-by: Andreas Gruenbacher > Signed-off-by: Christoph Hellwig > --- > fs/iomap.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/fs/iomap.c b/fs/iomap.c > index 4d8ff0f5ecc9..966ffad9706a 100644 > --- a/fs/iomap.c > +++ b/fs/iomap.c > @@ -155,6 +155,13 @@ iomap_readpage_actor(struct inode *inode, loff_t pos, loff_t length, void *data, > bool is_contig = false; > sector_t sector; > > + if (iomap->type == IOMAP_INLINE) { > + WARN_ON_ONCE(poff); This is ok. > + WARN_ON_ONCE(plen != PAGE_SIZE); Inline mappings only extend to the end of the file (iomap->offset == 0 && iomap->length == inode->i_size), so length and plen will be inode->i_size here. This assertion should just be removed. > + iomap_read_inline_data(inode, page, iomap); > + return PAGE_SIZE; > + } > + > /* we don't support blocksize < PAGE_SIZE quite yet. */ > WARN_ON_ONCE(pos != page_offset(page)); > WARN_ON_ONCE(plen != PAGE_SIZE); > -- > 2.18.0 > Thanks, Andreas From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Gruenbacher Subject: Re: [PATCH] iomap: Add inline data support to iomap_readpage_actor Date: Sun, 1 Jul 2018 23:43:43 +0200 Message-ID: References: <20180615130209.1970-2-hch@lst.de> <20180629144444.28826-1-agruenba@redhat.com> <20180701062141.GA27281@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Cc: cluster-devel , linux-fsdevel , linux-ext4 To: Christoph Hellwig Return-path: In-Reply-To: <20180701062141.GA27281@lst.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: cluster-devel-bounces@redhat.com Errors-To: cluster-devel-bounces@redhat.com List-Id: linux-ext4.vger.kernel.org On 1 July 2018 at 08:21, Christoph Hellwig wrote: > Looks sensible, although I think it could use some more sanity checking > and a changelog. Does the version below work for you? Almost. > --- > From e4603b7acde9b77e7a4aad6038c7ac42ca35772d Mon Sep 17 00:00:00 2001 > From: Andreas Gruenbacher > Date: Fri, 29 Jun 2018 16:44:44 +0200 > Subject: iomap: Add inline data support to iomap_readpage_actor > > Just copy the inline data into the page using the existing helper. > > Signed-off-by: Andreas Gruenbacher > Signed-off-by: Christoph Hellwig > --- > fs/iomap.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/fs/iomap.c b/fs/iomap.c > index 4d8ff0f5ecc9..966ffad9706a 100644 > --- a/fs/iomap.c > +++ b/fs/iomap.c > @@ -155,6 +155,13 @@ iomap_readpage_actor(struct inode *inode, loff_t pos, loff_t length, void *data, > bool is_contig = false; > sector_t sector; > > + if (iomap->type == IOMAP_INLINE) { > + WARN_ON_ONCE(poff); This is ok. > + WARN_ON_ONCE(plen != PAGE_SIZE); Inline mappings only extend to the end of the file (iomap->offset == 0 && iomap->length == inode->i_size), so length and plen will be inode->i_size here. This assertion should just be removed. > + iomap_read_inline_data(inode, page, iomap); > + return PAGE_SIZE; > + } > + > /* we don't support blocksize < PAGE_SIZE quite yet. */ > WARN_ON_ONCE(pos != page_offset(page)); > WARN_ON_ONCE(plen != PAGE_SIZE); > -- > 2.18.0 > Thanks, Andreas From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Gruenbacher Date: Sun, 1 Jul 2018 23:43:43 +0200 Subject: [Cluster-devel] [PATCH] iomap: Add inline data support to iomap_readpage_actor In-Reply-To: <20180701062141.GA27281@lst.de> References: <20180615130209.1970-2-hch@lst.de> <20180629144444.28826-1-agruenba@redhat.com> <20180701062141.GA27281@lst.de> Message-ID: List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On 1 July 2018 at 08:21, Christoph Hellwig wrote: > Looks sensible, although I think it could use some more sanity checking > and a changelog. Does the version below work for you? Almost. > --- > From e4603b7acde9b77e7a4aad6038c7ac42ca35772d Mon Sep 17 00:00:00 2001 > From: Andreas Gruenbacher > Date: Fri, 29 Jun 2018 16:44:44 +0200 > Subject: iomap: Add inline data support to iomap_readpage_actor > > Just copy the inline data into the page using the existing helper. > > Signed-off-by: Andreas Gruenbacher > Signed-off-by: Christoph Hellwig > --- > fs/iomap.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/fs/iomap.c b/fs/iomap.c > index 4d8ff0f5ecc9..966ffad9706a 100644 > --- a/fs/iomap.c > +++ b/fs/iomap.c > @@ -155,6 +155,13 @@ iomap_readpage_actor(struct inode *inode, loff_t pos, loff_t length, void *data, > bool is_contig = false; > sector_t sector; > > + if (iomap->type == IOMAP_INLINE) { > + WARN_ON_ONCE(poff); This is ok. > + WARN_ON_ONCE(plen != PAGE_SIZE); Inline mappings only extend to the end of the file (iomap->offset == 0 && iomap->length == inode->i_size), so length and plen will be inode->i_size here. This assertion should just be removed. > + iomap_read_inline_data(inode, page, iomap); > + return PAGE_SIZE; > + } > + > /* we don't support blocksize < PAGE_SIZE quite yet. */ > WARN_ON_ONCE(pos != page_offset(page)); > WARN_ON_ONCE(plen != PAGE_SIZE); > -- > 2.18.0 > Thanks, Andreas