From: Christoph Hellwig <hch@infradead.org> To: Gao Xiang <gaoxiang25@huawei.com> Cc: Alexander Viro <viro@zeniv.linux.org.uk>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Andrew Morton <akpm@linux-foundation.org>, Stephen Rothwell <sfr@canb.auug.org.au>, Theodore Ts'o <tytso@mit.edu>, Pavel Machek <pavel@denx.de>, David Sterba <dsterba@suse.cz>, Amir Goldstein <amir73il@gmail.com>, Christoph Hellwig <hch@infradead.org>, "Darrick J . Wong" <darrick.wong@oracle.com>, Dave Chinner <david@fromorbit.com>, Jaegeuk Kim <jaegeuk@kernel.org>, Jan Kara <jack@suse.cz>, Linus Torvalds <torvalds@linux-foundation.org>, linux-fsdevel@vger.kernel.org, devel@driverdev.osuosl.org, LKML <linux-kernel@vger.kernel.org>, linux-erofs@lists.ozlabs.org, Chao Yu <yuchao0@huawei.com>, Miao Xie <miaoxie@huawei.com>, Li Guifu <bluce.liguifu@huawei.com>, Fang Wei <fangwei1@huawei.com> Subject: Re: [PATCH v6 05/24] erofs: add inode operations Date: Thu, 29 Aug 2019 03:24:26 -0700 [thread overview] Message-ID: <20190829102426.GE20598@infradead.org> (raw) In-Reply-To: <20190802125347.166018-6-gaoxiang25@huawei.com> On Fri, Aug 02, 2019 at 08:53:28PM +0800, Gao Xiang wrote: > This adds core functions to get, read an inode. > It adds statx support as well. > > Signed-off-by: Gao Xiang <gaoxiang25@huawei.com> > --- > fs/erofs/inode.c | 291 +++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 291 insertions(+) > create mode 100644 fs/erofs/inode.c > > diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c > new file mode 100644 > index 000000000000..b6ea997bc4ae > --- /dev/null > +++ b/fs/erofs/inode.c > @@ -0,0 +1,291 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * linux/fs/erofs/inode.c > + * > + * Copyright (C) 2017-2018 HUAWEI, Inc. > + * http://www.huawei.com/ > + * Created by Gao Xiang <gaoxiang25@huawei.com> > + */ > +#include "internal.h" > + > +#include <trace/events/erofs.h> > + > +/* no locking */ > +static int read_inode(struct inode *inode, void *data) > +{ > + struct erofs_vnode *vi = EROFS_V(inode); > + struct erofs_inode_v1 *v1 = data; > + const unsigned int advise = le16_to_cpu(v1->i_advise); > + erofs_blk_t nblks = 0; > + > + vi->datamode = __inode_data_mapping(advise); What is the deal with these magic underscores here and various other similar helpers? > + /* fast symlink (following ext4) */ This actually originates in FFS. But it is so common that the comment seems a little pointless. > + if (S_ISLNK(inode->i_mode) && inode->i_size < PAGE_SIZE) { > + char *lnk = erofs_kmalloc(sbi, inode->i_size + 1, GFP_KERNEL); Please just use plain kmalloc everywhere and let the normal kernel error injection code take care of injeting any errors. > + /* inline symlink data shouldn't across page boundary as well */ ... should not cross .. > + if (unlikely(m_pofs + inode->i_size > PAGE_SIZE)) { > + DBG_BUGON(1); > + kfree(lnk); > + return -EIO; > + } > + > + /* get in-page inline data */ s/get/copy/, but the comment seems rather pointless. > + memcpy(lnk, data + m_pofs, inode->i_size); > + lnk[inode->i_size] = '\0'; > + > + inode->i_link = lnk; > + set_inode_fast_symlink(inode); Please just set the ops directly instead of obsfucating that in a single caller, single line inline function. And please set it instead of the normal symlink iops in the same place where you also set those.:w > + err = read_inode(inode, data + ofs); > + if (!err) { if (err) goto out_unlock; .. and save one level of indentation. > + if (is_inode_layout_compression(inode)) { The name of this helper is a little odd. But I think just opencoding it seems generally cleaner anyway. > + err = -ENOTSUPP; > + goto out_unlock; > + } > + > + inode->i_mapping->a_ops = &erofs_raw_access_aops; > + > + /* fill last page if inline data is available */ > + err = fill_inline_data(inode, data, ofs); Well, I think you should move the is_inode_flat_inline and (S_ISLNK(inode->i_mode) && inode->i_size < PAGE_SIZE) checks from that helper here, as otherwise you make everyone wonder why you'd always fill out the inline data. > +static inline struct inode *erofs_iget_locked(struct super_block *sb, > + erofs_nid_t nid) > +{ > + const unsigned long hashval = erofs_inode_hash(nid); > + > +#if BITS_PER_LONG >= 64 > + /* it is safe to use iget_locked for >= 64-bit platform */ > + return iget_locked(sb, hashval); > +#else > + return iget5_locked(sb, hashval, erofs_ilookup_test_actor, > + erofs_iget_set_actor, &nid); > +#endif Just use the slightly more complicated 32-bit version everywhere so that you have a single actually tested code path. And then remove this helper.
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@infradead.org> To: Gao Xiang <gaoxiang25@huawei.com> Cc: Jan Kara <jack@suse.cz>, Dave Chinner <david@fromorbit.com>, LKML <linux-kernel@vger.kernel.org>, Miao Xie <miaoxie@huawei.com>, devel@driverdev.osuosl.org, Stephen Rothwell <sfr@canb.auug.org.au>, "Darrick J . Wong" <darrick.wong@oracle.com>, Christoph Hellwig <hch@infradead.org>, Linus Torvalds <torvalds@linux-foundation.org>, Amir Goldstein <amir73il@gmail.com>, Alexander Viro <viro@zeniv.linux.org.uk>, Jaegeuk Kim <jaegeuk@kernel.org>, Theodore Ts'o <tytso@mit.edu>, Pavel Machek <pavel@denx.de>, David Sterba <dsterba@suse.cz>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, linux-fsdevel@vger.kernel.org, Andrew Morton <akpm@linux-foundation.org>, linux-erofs@lists.ozlabs.org Subject: Re: [PATCH v6 05/24] erofs: add inode operations Date: Thu, 29 Aug 2019 03:24:26 -0700 [thread overview] Message-ID: <20190829102426.GE20598@infradead.org> (raw) In-Reply-To: <20190802125347.166018-6-gaoxiang25@huawei.com> On Fri, Aug 02, 2019 at 08:53:28PM +0800, Gao Xiang wrote: > This adds core functions to get, read an inode. > It adds statx support as well. > > Signed-off-by: Gao Xiang <gaoxiang25@huawei.com> > --- > fs/erofs/inode.c | 291 +++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 291 insertions(+) > create mode 100644 fs/erofs/inode.c > > diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c > new file mode 100644 > index 000000000000..b6ea997bc4ae > --- /dev/null > +++ b/fs/erofs/inode.c > @@ -0,0 +1,291 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * linux/fs/erofs/inode.c > + * > + * Copyright (C) 2017-2018 HUAWEI, Inc. > + * http://www.huawei.com/ > + * Created by Gao Xiang <gaoxiang25@huawei.com> > + */ > +#include "internal.h" > + > +#include <trace/events/erofs.h> > + > +/* no locking */ > +static int read_inode(struct inode *inode, void *data) > +{ > + struct erofs_vnode *vi = EROFS_V(inode); > + struct erofs_inode_v1 *v1 = data; > + const unsigned int advise = le16_to_cpu(v1->i_advise); > + erofs_blk_t nblks = 0; > + > + vi->datamode = __inode_data_mapping(advise); What is the deal with these magic underscores here and various other similar helpers? > + /* fast symlink (following ext4) */ This actually originates in FFS. But it is so common that the comment seems a little pointless. > + if (S_ISLNK(inode->i_mode) && inode->i_size < PAGE_SIZE) { > + char *lnk = erofs_kmalloc(sbi, inode->i_size + 1, GFP_KERNEL); Please just use plain kmalloc everywhere and let the normal kernel error injection code take care of injeting any errors. > + /* inline symlink data shouldn't across page boundary as well */ ... should not cross .. > + if (unlikely(m_pofs + inode->i_size > PAGE_SIZE)) { > + DBG_BUGON(1); > + kfree(lnk); > + return -EIO; > + } > + > + /* get in-page inline data */ s/get/copy/, but the comment seems rather pointless. > + memcpy(lnk, data + m_pofs, inode->i_size); > + lnk[inode->i_size] = '\0'; > + > + inode->i_link = lnk; > + set_inode_fast_symlink(inode); Please just set the ops directly instead of obsfucating that in a single caller, single line inline function. And please set it instead of the normal symlink iops in the same place where you also set those.:w > + err = read_inode(inode, data + ofs); > + if (!err) { if (err) goto out_unlock; .. and save one level of indentation. > + if (is_inode_layout_compression(inode)) { The name of this helper is a little odd. But I think just opencoding it seems generally cleaner anyway. > + err = -ENOTSUPP; > + goto out_unlock; > + } > + > + inode->i_mapping->a_ops = &erofs_raw_access_aops; > + > + /* fill last page if inline data is available */ > + err = fill_inline_data(inode, data, ofs); Well, I think you should move the is_inode_flat_inline and (S_ISLNK(inode->i_mode) && inode->i_size < PAGE_SIZE) checks from that helper here, as otherwise you make everyone wonder why you'd always fill out the inline data. > +static inline struct inode *erofs_iget_locked(struct super_block *sb, > + erofs_nid_t nid) > +{ > + const unsigned long hashval = erofs_inode_hash(nid); > + > +#if BITS_PER_LONG >= 64 > + /* it is safe to use iget_locked for >= 64-bit platform */ > + return iget_locked(sb, hashval); > +#else > + return iget5_locked(sb, hashval, erofs_ilookup_test_actor, > + erofs_iget_set_actor, &nid); > +#endif Just use the slightly more complicated 32-bit version everywhere so that you have a single actually tested code path. And then remove this helper.
next prev parent reply other threads:[~2019-08-29 10:24 UTC|newest] Thread overview: 432+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-02 12:53 [PATCH v6 00/24] erofs: promote erofs from staging Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 01/24] erofs: add on-disk layout Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-29 9:59 ` Christoph Hellwig 2019-08-29 9:59 ` Christoph Hellwig 2019-08-29 10:32 ` Gao Xiang 2019-08-29 10:32 ` Gao Xiang 2019-08-29 10:36 ` Christoph Hellwig 2019-08-29 10:36 ` Christoph Hellwig 2019-08-29 10:58 ` Gao Xiang 2019-08-29 10:58 ` Gao Xiang 2019-08-29 15:58 ` Joe Perches 2019-08-29 15:58 ` Joe Perches 2019-08-29 17:26 ` Gao Xiang 2019-08-29 17:26 ` Gao Xiang 2019-08-30 12:07 ` David Sterba 2019-08-30 12:07 ` David Sterba 2019-08-30 12:18 ` Gao Xiang 2019-08-30 12:18 ` Gao Xiang via Linux-erofs 2019-09-02 8:43 ` Pavel Machek 2019-09-02 8:43 ` Pavel Machek 2019-09-02 14:07 ` David Sterba 2019-09-02 14:07 ` David Sterba 2019-09-02 14:07 ` David Sterba 2019-09-03 11:27 ` Pavel Machek 2019-09-03 11:27 ` Pavel Machek 2019-08-29 15:41 ` Gao Xiang 2019-08-29 15:41 ` Gao Xiang 2019-09-01 7:54 ` Gao Xiang 2019-09-01 7:54 ` Gao Xiang via Linux-erofs 2019-09-01 7:54 ` Gao Xiang 2019-09-02 12:45 ` Christoph Hellwig 2019-09-02 12:45 ` Christoph Hellwig 2019-09-02 12:45 ` Christoph Hellwig 2019-09-02 13:02 ` Gao Xiang 2019-09-02 13:02 ` Gao Xiang 2019-09-02 13:02 ` Gao Xiang 2019-09-02 8:40 ` Pavel Machek 2019-09-02 8:40 ` Pavel Machek 2019-09-02 8:40 ` Pavel Machek 2019-09-02 10:35 ` Gao Xiang 2019-09-02 10:35 ` Gao Xiang 2019-09-02 10:35 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 02/24] erofs: add erofs in-memory stuffs Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 03/24] erofs: add super block operations Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-29 10:15 ` Christoph Hellwig 2019-08-29 10:15 ` Christoph Hellwig 2019-08-29 10:50 ` Gao Xiang 2019-08-29 10:50 ` Gao Xiang 2019-08-30 16:39 ` Christoph Hellwig 2019-08-30 16:39 ` Christoph Hellwig 2019-08-30 16:39 ` Christoph Hellwig 2019-08-30 17:15 ` Gao Xiang 2019-08-30 17:15 ` Gao Xiang 2019-08-30 17:15 ` Gao Xiang 2019-08-31 0:54 ` Gao Xiang 2019-08-31 0:54 ` Gao Xiang 2019-08-31 0:54 ` Gao Xiang 2019-08-31 6:34 ` Amir Goldstein 2019-08-31 6:34 ` Amir Goldstein 2019-08-31 6:34 ` Amir Goldstein 2019-08-31 6:48 ` Gao Xiang 2019-08-31 6:48 ` Gao Xiang 2019-08-31 6:48 ` Gao Xiang 2019-09-01 8:54 ` Gao Xiang 2019-09-01 8:54 ` Gao Xiang via Linux-erofs 2019-09-01 8:54 ` Gao Xiang 2019-09-02 12:51 ` Christoph Hellwig 2019-09-02 12:51 ` Christoph Hellwig 2019-09-02 12:51 ` Christoph Hellwig 2019-09-02 14:43 ` Gao Xiang 2019-09-02 14:43 ` Gao Xiang 2019-09-02 14:43 ` Gao Xiang 2019-09-02 15:19 ` Christoph Hellwig 2019-09-02 15:19 ` Christoph Hellwig 2019-09-02 15:19 ` Christoph Hellwig 2019-09-02 15:24 ` Gao Xiang 2019-09-02 15:24 ` Gao Xiang 2019-09-02 15:24 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 04/24] erofs: add raw address_space operations Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-29 10:17 ` Christoph Hellwig 2019-08-29 10:17 ` Christoph Hellwig 2019-08-29 11:46 ` Gao Xiang 2019-08-29 11:46 ` Gao Xiang 2019-08-30 16:40 ` Christoph Hellwig 2019-08-30 16:40 ` Christoph Hellwig 2019-08-30 16:40 ` Christoph Hellwig 2019-08-30 17:23 ` Gao Xiang 2019-08-30 17:23 ` Gao Xiang 2019-08-30 17:23 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 05/24] erofs: add inode operations Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-29 10:24 ` Christoph Hellwig [this message] 2019-08-29 10:24 ` Christoph Hellwig 2019-08-29 11:59 ` Gao Xiang 2019-08-29 11:59 ` Gao Xiang 2019-08-30 16:42 ` Christoph Hellwig 2019-08-30 16:42 ` Christoph Hellwig 2019-08-30 16:42 ` Christoph Hellwig 2019-08-30 18:46 ` Gao Xiang 2019-08-30 18:46 ` Gao Xiang 2019-08-30 18:46 ` Gao Xiang 2019-09-01 9:34 ` Gao Xiang 2019-09-01 9:34 ` Gao Xiang via Linux-erofs 2019-09-01 9:34 ` Gao Xiang 2019-09-02 12:53 ` Christoph Hellwig 2019-09-02 12:53 ` Christoph Hellwig 2019-09-02 12:53 ` Christoph Hellwig 2019-09-02 13:43 ` David Sterba 2019-09-02 13:43 ` David Sterba 2019-09-02 13:43 ` David Sterba 2019-09-02 13:55 ` Gao Xiang 2019-09-02 13:55 ` Gao Xiang 2019-09-02 13:55 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 06/24] erofs: support special inode Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-29 10:25 ` Christoph Hellwig 2019-08-29 10:25 ` Christoph Hellwig 2019-09-01 9:39 ` Gao Xiang 2019-09-01 9:39 ` Gao Xiang via Linux-erofs 2019-09-01 9:39 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 07/24] erofs: add directory operations Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 08/24] erofs: add namei functions Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-29 10:28 ` Christoph Hellwig 2019-08-29 10:28 ` Christoph Hellwig 2019-08-29 11:28 ` Gao Xiang 2019-08-29 11:28 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 09/24] erofs: support tracepoint Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 10/24] erofs: update Kconfig and Makefile Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 11/24] erofs: introduce xattr & posixacl support Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 12/24] erofs: introduce tagged pointer Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 13/24] erofs: add compression indexes support Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 14/24] erofs: introduce superblock registration Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 15/24] erofs: introduce erofs shrinker Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 16/24] erofs: introduce workstation for decompression Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 17/24] erofs: introduce per-CPU buffers implementation Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 18/24] erofs: introduce pagevec for decompression subsystem Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 19/24] erofs: add erofs_allocpage() Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 20/24] erofs: introduce generic decompression backend Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 21/24] erofs: introduce LZ4 decompression inplace Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 22/24] erofs: introduce the decompression frontend Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 23/24] erofs: introduce cached decompression Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-08-02 12:53 ` [PATCH v6 24/24] erofs: add document Gao Xiang 2019-08-02 12:53 ` Gao Xiang 2019-09-01 5:51 ` [PATCH 00/21] erofs: patchset addressing Christoph's comments Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-01 5:51 ` [PATCH 01/21] erofs: remove all the byte offset comments Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:05 ` Christoph Hellwig 2019-09-02 12:05 ` Christoph Hellwig 2019-09-02 12:05 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 02/21] erofs: on-disk format should have explicitly assigned numbers Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:05 ` Christoph Hellwig 2019-09-02 12:05 ` Christoph Hellwig 2019-09-02 12:05 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 03/21] erofs: some macros are much more readable as a function Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:06 ` Christoph Hellwig 2019-09-02 12:06 ` Christoph Hellwig 2019-09-02 12:06 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 04/21] erofs: kill __packed for on-disk structures Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:06 ` Christoph Hellwig 2019-09-02 12:06 ` Christoph Hellwig 2019-09-02 12:06 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 05/21] erofs: update erofs_inode_is_data_compressed helper Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:07 ` Christoph Hellwig 2019-09-02 12:07 ` Christoph Hellwig 2019-09-02 12:07 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 06/21] erofs: kill erofs_{init,exit}_inode_cache Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:09 ` Christoph Hellwig 2019-09-02 12:09 ` Christoph Hellwig 2019-09-02 12:09 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 07/21] erofs: use erofs_inode naming Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:10 ` Christoph Hellwig 2019-09-02 12:10 ` Christoph Hellwig 2019-09-02 12:10 ` Christoph Hellwig 2019-09-02 12:13 ` Gao Xiang 2019-09-02 12:13 ` Gao Xiang 2019-09-02 12:13 ` Gao Xiang 2019-09-02 12:47 ` Christoph Hellwig 2019-09-02 12:47 ` Christoph Hellwig 2019-09-02 12:47 ` Christoph Hellwig 2019-09-02 13:33 ` Gao Xiang 2019-09-02 13:33 ` Gao Xiang 2019-09-02 13:33 ` Gao Xiang 2019-09-01 5:51 ` [PATCH 08/21] erofs: update comments in inode.c Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-01 5:51 ` [PATCH 09/21] erofs: update erofs symlink stuffs Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:11 ` Christoph Hellwig 2019-09-02 12:11 ` Christoph Hellwig 2019-09-02 12:11 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 10/21] erofs: kill is_inode_layout_compression() Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:11 ` Christoph Hellwig 2019-09-02 12:11 ` Christoph Hellwig 2019-09-02 12:11 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 11/21] erofs: use dsb instead of layout for ondisk super_block Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:12 ` Christoph Hellwig 2019-09-02 12:12 ` Christoph Hellwig 2019-09-02 12:12 ` Christoph Hellwig 2019-09-02 12:15 ` Gao Xiang 2019-09-02 12:15 ` Gao Xiang 2019-09-02 12:15 ` Gao Xiang 2019-09-01 5:51 ` [PATCH 12/21] erofs: kill verbose debug info in erofs_fill_super Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:14 ` Christoph Hellwig 2019-09-02 12:14 ` Christoph Hellwig 2019-09-02 12:14 ` Christoph Hellwig 2019-09-02 12:18 ` Gao Xiang 2019-09-02 12:18 ` Gao Xiang 2019-09-02 12:18 ` Gao Xiang 2019-09-01 5:51 ` [PATCH 13/21] erofs: simplify erofs_grab_bio() since bio_alloc() never fail Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:20 ` Christoph Hellwig 2019-09-02 12:20 ` Christoph Hellwig 2019-09-02 12:20 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 14/21] erofs: kill prio and nofail of erofs_get_meta_page() Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:21 ` Christoph Hellwig 2019-09-02 12:21 ` Christoph Hellwig 2019-09-02 12:21 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 15/21] erofs: kill __submit_bio() Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-01 5:51 ` [PATCH 16/21] erofs: kill magic underscores Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:26 ` Christoph Hellwig 2019-09-02 12:26 ` Christoph Hellwig 2019-09-02 12:26 ` Christoph Hellwig 2019-09-02 12:39 ` Gao Xiang 2019-09-02 12:39 ` Gao Xiang 2019-09-02 12:39 ` Gao Xiang 2019-09-02 12:54 ` Christoph Hellwig 2019-09-02 12:54 ` Christoph Hellwig 2019-09-02 12:54 ` Christoph Hellwig 2019-09-02 13:38 ` Gao Xiang 2019-09-02 13:38 ` Gao Xiang 2019-09-02 13:38 ` Gao Xiang 2019-09-01 5:51 ` [PATCH 17/21] erofs: use a switch statement when dealing with the file modes Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:27 ` Christoph Hellwig 2019-09-02 12:27 ` Christoph Hellwig 2019-09-02 12:27 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 18/21] erofs: add "erofs_" prefix for common and short functions Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:28 ` Christoph Hellwig 2019-09-02 12:28 ` Christoph Hellwig 2019-09-02 12:28 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 19/21] erofs: kill all erofs specific fault injection Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:28 ` Christoph Hellwig 2019-09-02 12:28 ` Christoph Hellwig 2019-09-02 12:28 ` Christoph Hellwig 2019-09-01 5:51 ` [PATCH 20/21] erofs: kill use_vmap module parameter Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:31 ` Christoph Hellwig 2019-09-02 12:31 ` Christoph Hellwig 2019-09-02 12:31 ` Christoph Hellwig 2019-09-02 12:43 ` Gao Xiang 2019-09-02 12:43 ` Gao Xiang 2019-09-02 12:43 ` Gao Xiang 2019-09-01 5:51 ` [PATCH 21/21] erofs: save one level of indentation Gao Xiang 2019-09-01 5:51 ` Gao Xiang via Linux-erofs 2019-09-01 5:51 ` Gao Xiang 2019-09-02 12:31 ` Christoph Hellwig 2019-09-02 12:31 ` Christoph Hellwig 2019-09-02 12:31 ` Christoph Hellwig 2019-09-02 12:46 ` [PATCH 00/21] erofs: patchset addressing Christoph's comments Christoph Hellwig 2019-09-02 12:46 ` Christoph Hellwig 2019-09-02 12:46 ` Christoph Hellwig 2019-09-02 14:24 ` Gao Xiang 2019-09-02 14:24 ` Gao Xiang 2019-09-02 14:24 ` Gao Xiang 2019-09-02 15:23 ` Christoph Hellwig 2019-09-02 15:23 ` Christoph Hellwig 2019-09-02 15:23 ` Christoph Hellwig 2019-09-02 15:50 ` Gao Xiang 2019-09-02 15:50 ` Gao Xiang 2019-09-02 15:50 ` Gao Xiang 2019-09-03 6:58 ` Christoph Hellwig 2019-09-03 6:58 ` Christoph Hellwig 2019-09-03 6:58 ` Christoph Hellwig 2019-09-03 8:17 ` Gao Xiang 2019-09-03 8:17 ` Gao Xiang 2019-09-03 8:17 ` Gao Xiang 2019-09-03 15:37 ` Christoph Hellwig 2019-09-03 15:37 ` Christoph Hellwig 2019-09-03 15:37 ` Christoph Hellwig 2019-09-03 15:43 ` Gao Xiang 2019-09-03 15:43 ` Gao Xiang via Linux-erofs 2019-09-03 15:43 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 00/25] " Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 01/25] erofs: remove all the byte offset comments Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 02/25] erofs: on-disk format should have explicitly assigned numbers Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 03/25] erofs: some macros are much more readable as a function Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 04/25] erofs: kill __packed for on-disk structures Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 05/25] erofs: update erofs_inode_is_data_compressed helper Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 06/25] erofs: use feature_incompat rather than requirements Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 07/25] erofs: better naming for erofs inode related stuffs Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 08/25] erofs: kill erofs_{init,exit}_inode_cache Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 09/25] erofs: use erofs_inode naming Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 10/25] erofs: update erofs_fs.h comments Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 11/25] erofs: update comments in inode.c Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` [PATCH v2 12/25] erofs: better erofs symlink stuffs Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:08 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 13/25] erofs: use dsb instead of layout for ondisk super_block Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 14/25] erofs: kill verbose debug info in erofs_fill_super Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 15/25] erofs: localize erofs_grab_bio() Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 16/25] erofs: kill prio and nofail of erofs_get_meta_page() Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 17/25] erofs: kill __submit_bio() Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 18/25] erofs: add "erofs_" prefix for common and short functions Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 19/25] erofs: kill all erofs specific fault injection Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 20/25] erofs: kill use_vmap module parameter Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 21/25] erofs: save one level of indentation Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 22/25] erofs: rename errln/infoln/debugln to erofs_{err,info,dbg} Gao Xiang 2019-09-04 2:09 ` [PATCH v2 22/25] erofs: rename errln/infoln/debugln to erofs_{err, info, dbg} Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 23/25] erofs: use read_mapping_page instead of sb_bread Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 24/25] erofs: always use iget5_locked Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` [PATCH v2 25/25] erofs: use read_cache_page_gfp for erofs_get_meta_page Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 2:09 ` Gao Xiang 2019-09-04 3:27 ` [PATCH v2 00/25] erofs: patchset addressing Christoph's comments Chao Yu 2019-09-04 3:27 ` Chao Yu 2019-09-04 3:27 ` Chao Yu 2019-09-05 1:03 ` Gao Xiang 2019-09-05 1:03 ` Gao Xiang via Linux-erofs 2019-09-05 1:03 ` Gao Xiang 2019-09-05 11:30 ` Christoph Hellwig 2019-09-05 11:30 ` Christoph Hellwig 2019-09-05 11:30 ` Christoph Hellwig 2019-09-04 5:16 ` Christoph Hellwig 2019-09-04 5:16 ` Christoph Hellwig 2019-09-04 5:16 ` Christoph Hellwig 2019-09-04 6:08 ` Gao Xiang 2019-09-04 6:08 ` Gao Xiang via Linux-erofs 2019-09-04 6:08 ` Gao Xiang
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190829102426.GE20598@infradead.org \ --to=hch@infradead.org \ --cc=akpm@linux-foundation.org \ --cc=amir73il@gmail.com \ --cc=bluce.liguifu@huawei.com \ --cc=darrick.wong@oracle.com \ --cc=david@fromorbit.com \ --cc=devel@driverdev.osuosl.org \ --cc=dsterba@suse.cz \ --cc=fangwei1@huawei.com \ --cc=gaoxiang25@huawei.com \ --cc=gregkh@linuxfoundation.org \ --cc=jack@suse.cz \ --cc=jaegeuk@kernel.org \ --cc=linux-erofs@lists.ozlabs.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=miaoxie@huawei.com \ --cc=pavel@denx.de \ --cc=sfr@canb.auug.org.au \ --cc=torvalds@linux-foundation.org \ --cc=tytso@mit.edu \ --cc=viro@zeniv.linux.org.uk \ --cc=yuchao0@huawei.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.