[PATCH v2 09/24] erofs: support tracepoint

2019-07-11 Thread Gao Xiang
Add basic tracepoints for ->readpage{,s}, ->lookup, ->destroy_inode, fill_inode and map_blocks. Signed-off-by: Gao Xiang --- include/trace/events/erofs.h | 241 +++ 1 file changed, 241 insertions(+) create mode 100644 include/trace/events/erofs.h dif

[PATCH v2 10/24] erofs: update Kconfig and Makefile

2019-07-11 Thread Gao Xiang
This commit adds Makefile and Kconfig for erofs, and updates Makefile and Kconfig files in the fs directory. Signed-off-by: Gao Xiang --- fs/Kconfig| 1 + fs/Makefile | 1 + fs/erofs/Kconfig | 45 + fs/erofs/Makefile | 9 + 4

[PATCH v2 07/24] erofs: add directory operations

2019-07-11 Thread Gao Xiang
This adds functions for directory, mainly readdir. Signed-off-by: Gao Xiang --- fs/erofs/dir.c | 147 + 1 file changed, 147 insertions(+) create mode 100644 fs/erofs/dir.c diff --git a/fs/erofs/dir.c b/fs/erofs/dir.c new file mode 100644 index

[PATCH v2 11/24] erofs: introduce xattr & posixacl support

2019-07-11 Thread Gao Xiang
lname: system.posix_acl_default struct erofs_xattr_entry: .e_name_len = 0 .e_name_index = EROFS_XATTR_INDEX_POSIX_ACL_DEFAULT (3) Signed-off-by: Gao Xiang --- fs/erofs/Kconfig| 37 +++ fs/erofs/Makefile | 1 + fs/erofs/inode.c| 14 +- fs/erofs/internal.h | 16

[PATCH v2 12/24] erofs: introduce tagged pointer

2019-07-11 Thread Gao Xiang
://en.wikipedia.org/wiki/Tagged_pointer Signed-off-by: Gao Xiang --- fs/erofs/tagptr.h | 110 ++ 1 file changed, 110 insertions(+) create mode 100644 fs/erofs/tagptr.h diff --git a/fs/erofs/tagptr.h b/fs/erofs/tagptr.h new file mode 100644 index

[PATCH v2 24/24] erofs: add document

2019-07-11 Thread Gao Xiang
This documents key features, usage, and on-disk design of erofs. Signed-off-by: Gao Xiang --- Documentation/filesystems/erofs.txt | 211 1 file changed, 211 insertions(+) create mode 100644 Documentation/filesystems/erofs.txt diff --git a/Documentation/filesystems

[PATCH v2 04/24] erofs: add raw address_space operations

2019-07-11 Thread Gao Xiang
This commit adds functions for meta and raw data, and also provides address_space_operations for raw data access. Signed-off-by: Gao Xiang --- fs/erofs/data.c | 390 1 file changed, 390 insertions(+) create mode 100644 fs/erofs/data.c diff

[PATCH v2 06/24] erofs: support special inode

2019-07-11 Thread Gao Xiang
This patch adds to support special inode, such as block dev, char, socket, pipe inode. Signed-off-by: Gao Xiang --- fs/erofs/inode.c | 27 +-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c index 79ef5b38dfa3

[PATCH v2 23/24] erofs: introduce cached decompression

2019-07-11 Thread Gao Xiang
This patch adds strategies which can be selected by users in order to cache both incomplete ends of compressed physical clusters as a complement of in-place I/O in order to boost random read, but it costs more memory than the in-place I/O only. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig

[PATCH v2 18/24] erofs: introduce pagevec for decompression subsystem

2019-07-11 Thread Gao Xiang
whole array itself up will be needed. Signed-off-by: Gao Xiang --- fs/erofs/zpvec.h | 159 +++ 1 file changed, 159 insertions(+) create mode 100644 fs/erofs/zpvec.h diff --git a/fs/erofs/zpvec.h b/fs/erofs/zpvec.h new file mode 100644 index

[PATCH v2 19/24] erofs: add erofs_allocpage()

2019-07-11 Thread Gao Xiang
This patch introduces an temporary _on-stack_ page pool to reuse the freed page directly as much as it can for better performance and release all pages at a time, it also slightly reduces the possibility of the potential memory allocation failure. Signed-off-by: Gao Xiang --- fs/erofs

[PATCH v2 17/24] erofs: introduce per-CPU buffers implementation

2019-07-11 Thread Gao Xiang
x27;s leave it as-is for now. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig| 14 ++ fs/erofs/internal.h | 24 fs/erofs/utils.c| 12 3 files changed, 50 insertions(+) diff --git a/fs/erofs/Kconfig b/fs/erofs/Kconfig index f6b6eb0

[PATCH v2 03/24] erofs: add super block operations

2019-07-11 Thread Gao Xiang
This commit adds erofs super block operations, including (u)mount, remount_fs, show_options, statfs, in addition to some private icache management functions. Signed-off-by: Gao Xiang --- fs/erofs/super.c | 502 +++ 1 file changed, 502 insertions

[PATCH v2 14/24] erofs: introduce superblock registration

2019-07-11 Thread Gao Xiang
In order to introducing shrinker solution for erofs, let's manage all mounted erofs instances at first. Signed-off-by: Gao Xiang --- fs/erofs/Makefile | 2 +- fs/erofs/internal.h | 13 + fs/erofs/super.c| 4 fs/erofs/utils.c| 32 ++

[PATCH v2 01/24] erofs: add on-disk layout

2019-07-11 Thread Gao Xiang
This commit adds the on-disk layout header file of erofs. On-disk format is compatible with erofs-staging added in 4.19. Signed-off-by: Gao Xiang --- fs/erofs/erofs_fs.h | 317 1 file changed, 317 insertions(+) create mode 100644 fs/erofs/erofs_fs.h

[PATCH v2 02/24] erofs: add erofs in-memory stuffs

2019-07-11 Thread Gao Xiang
(). Signed-off-by: Gao Xiang --- fs/erofs/internal.h | 359 1 file changed, 359 insertions(+) create mode 100644 fs/erofs/internal.h diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h new file mode 100644 index ..03ce8420d20c --- /dev/null

[PATCH v2 16/24] erofs: introduce workstation for decompression

2019-07-11 Thread Gao Xiang
future. Signed-off-by: Gao Xiang --- fs/erofs/internal.h | 83 ++ fs/erofs/super.c| 4 ++ fs/erofs/utils.c| 168 +++- 3 files changed, 253 insertions(+), 2 deletions(-) diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h ind

[PATCH v2 15/24] erofs: introduce erofs shrinker

2019-07-11 Thread Gao Xiang
bjects. Signed-off-by: Gao Xiang --- fs/erofs/internal.h | 7 fs/erofs/super.c| 6 +++ fs/erofs/utils.c| 94 - 3 files changed, 106 insertions(+), 1 deletion(-) diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h index 87287cd9c146..75e82f

[PATCH v2 21/24] erofs: introduce LZ4 decompression inplace

2019-07-11 Thread Gao Xiang
d of course (see the following patches for test results). [1] https://github.com/lz4/lz4/commit/b17f578a919b7e6b078cede2d52be29dd48c8e8c https://github.com/lz4/lz4/commit/5997e139f53169fa3a1c1b4418d2452a90b01602 Signed-off-by: Gao Xiang --- fs/erofs/decompre

[PATCH v2 05/24] erofs: add inode operations

2019-07-11 Thread Gao Xiang
This adds core functions to get, read an inode. It adds statx support as well. Signed-off-by: Gao Xiang --- 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

[PATCH v2 08/24] erofs: add namei functions

2019-07-11 Thread Gao Xiang
This commit adds functions that transfer names to inodes. Signed-off-by: Gao Xiang --- fs/erofs/namei.c | 246 +++ 1 file changed, 246 insertions(+) create mode 100644 fs/erofs/namei.c diff --git a/fs/erofs/namei.c b/fs/erofs/namei.c new file mode

[PATCH v2 13/24] erofs: add compression indexes support

2019-07-11 Thread Gao Xiang
regrab' processes if they request the same meta page. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig | 9 + fs/erofs/Makefile| 1 + fs/erofs/inode.c | 2 +- fs/erofs/internal.h | 35 ++- fs/erofs/zmap.c | 460

[PATCH v2 20/24] erofs: introduce generic decompression backend

2019-07-11 Thread Gao Xiang
ch. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig| 10 ++ fs/erofs/Makefile | 2 +- fs/erofs/compress.h | 89 fs/erofs/decompressor.c | 301 4 files changed, 401 insertions(+), 1 deletion(-) create mode 100644 fs/e

[PATCH v2 22/24] erofs: introduce the decompression frontend

2019-07-11 Thread Gao Xiang
allocation and all extra compressed data memcpy. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig|1 + fs/erofs/Makefile |2 +- fs/erofs/internal.h | 16 +- fs/erofs/super.c|9 + fs/erofs/zdata.c| 1268 +++ fs/erofs/zdata.h| 192

Re: [PATCH] staging: erofs: Remove function erofs_kill_sb()

2019-07-12 Thread Gao Xiang
On 2019/7/12 15:12, Nishka Dasgupta wrote: > Remove function erofs_kill_sb as all it does is call kill_block_super. > Modify references to the former to point to the latter. > Issue found with Coccinelle. > > Signed-off-by: Nishka Dasgupta Reviewed-by: Gao Xiang Th

Re: [PATCH v2 00/24] erofs: promote erofs from staging

2019-07-14 Thread Gao Xiang
Hi Pavel, On 2019/7/14 18:49, Pavel Machek Wrote: > On Thu 2019-07-11 22:57:31, Gao Xiang wrote: >> Changelog from v1: >> o resend the whole filesystem into a patchset suggested by Greg; >> o code is more cleaner, especially for decompression frontend. >> >> --8

Re: [PATCH] Staging: erofs:converting all 'unsigned' to 'unsigned int'

2019-07-14 Thread Gao Xiang
LE: drivers/staging/erofs/unzip_pagevec.h:95: +erofs_vtptr_t *pages, unsigned int i) WARNING: line over 80 characters #203: FILE: drivers/staging/erofs/xattr.h:52: +static inline const struct xattr_handler *erofs_xattr_handler(unsigned int index) Thanks, Gao Xia

Re: [PATCH] staging: erofs:converting all 'unsigned' to 'unsigned int'

2019-07-14 Thread Gao Xiang
37 unsigned int xattr_id) > { > return (xattr_id * sizeof(__u32)) % EROFS_BLKSIZ; > } > @@ -49,7 +49,8 @@ extern const struct xattr_handler > erofs_xattr_trusted_handler; > extern const st

Re: [PATCH v2 00/24] erofs: promote erofs from staging

2019-07-15 Thread Gao Xiang
I doesn't have any interest in that way in the near future... In the long term, I'd like to spend my personal free time to decouple code like fscrypt and introduce fscompr for other generic fs to compress unmodified files as well then... That is another stuf

Re: [PATCH v3] staging: erofs:converting all 'unsigned' to 'unsigned int'

2019-07-15 Thread Gao Xiang
^ My fault... maybe Greg could fix this issue while merging if accepted. Apart from that, it looks good to me, Reviewed-by: Gao Xiang Thanks, Gao Xiang ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH] staging: erofs:converting all 'unsigned' to 'unsigned int'

2019-07-15 Thread Gao Xiang
On 2019/7/15 19:29, Pratik Shinde wrote: > Fixed checkpatch warnings: converting all 'unsigned' to 'unsigned int' > > Signed-off-by: Pratik Shinde Bump version number and add my reviewed-by tag if you resend again... since no idea which version is the latest

Re: [PATCH] staging: erofs: support bmap

2019-07-16 Thread Gao Xiang
urn err; > +} > + > +static sector_t erofs_bmap(struct address_space *mapping, sector_t block) > +{ > + struct inode *inode = mapping->host; > + > + if (is_inode_flat_inline(inode)) > + return 0; could we support flat_inline as well? some difficulty on t

Re: [PATCH] staging: erofs: support bmap

2019-07-16 Thread Gao Xiang
On 2019/7/16 15:35, Chao Yu wrote: > Hi Xiang, > > On 2019/7/16 15:19, Gao Xiang wrote: >> Hi Chao, >> >> On 2019/7/16 15:05, Chao Yu wrote: >>> Add erofs_bmap() to support FIBMAP ioctl on flatmode inode. >>> >>> Signed-off-by: C

Re: [PATCH v2] staging: erofs: support bmap

2019-07-16 Thread Gao Xiang
+ unsigned int blks = i_size_read(inode) >> LOG_BLOCK_SIZE; maybe we could use erofs_blk_t ? > + > + if (!blks || block >> LOG_SECTORS_PER_BLOCK >= blks) Could the above line be simplified to block >> LOG_SECTORS_PER_BLOCK >= blks? Other pa

Re: [PATCH] staging: erofs: avoid opened loop codes

2019-07-16 Thread Gao Xiang
or rename it since `flags' is too general? some thoughts? BTW, This piece of code has been changed in "[PATCH v2 00/24] erofs: promote erofs from staging", I will sync the code after some guys takes a look at v2 Thanks, Gao Xiang > > /* fallback to globa

Re: [PATCH] staging: erofs: avoid opened loop codes

2019-07-16 Thread Gao Xiang
On 2019/7/16 17:27, Chao Yu wrote: > Hi Xiang, > > On 2019/7/16 17:12, Gao Xiang wrote: >> Hi Chao, >> >> On 2019/7/16 16:52, Chao Yu wrote: >>> Use __GFP_NOFAIL to avoid opened loop codes in z_erofs_vle_unzip(). >>> >>> Signed-off-by: C

Re: [PATCH v2] staging: erofs: avoid opened loop codes

2019-07-16 Thread Gao Xiang
On 2019/7/16 17:44, Chao Yu wrote: > Use __GFP_NOFAIL to avoid opened loop codes in z_erofs_vle_unzip(). > > Signed-off-by: Chao Yu Reviewed-by: Gao Xiang Thanks, Gao Xiang ___ devel mailing list de...@linuxdriverproject

Re: [PATCH] staging: erofs: a few minor style fixes found using checkpatch

2019-07-16 Thread Gao Xiang
Opt_compress_force, 300 Opt_compress_force_type, 301 Opt_compress_type, 302 Opt_degraded, 303 Opt_device, 304 Opt_fatal_errors, Thanks, Gao Xiang > }; > > static match_table_t erofs_tokens = { > - {Opt_user_xattr,

Re: [PATCH] staging: erofs: a few minor style fixes found using checkpatch

2019-07-16 Thread Gao Xiang
n practice (it will make EROFS odd compared with other filesystems) and thanks for your interest :) Actually, if you notice that, I'm promoting erofs from staging. I would suggest that you could also take a look at that patchset... Thanks, Gao Xiang > > Thanks, > Karen P

Re: [PATCH] v3: staging: erofs: fix typo

2019-07-18 Thread Gao Xiang
On 2019/7/18 4:11, Karen Palacio wrote: > Fix typo in Kconfig > > Signed-off-by: Karen Palacio Reviewed-by: Gao Xiang Thanks, Gao Xiang ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman

Re: [PATCH v2 03/24] erofs: add super block operations

2019-07-20 Thread Gao Xiang
Hi Al, On 2019/7/21 6:49, Al Viro wrote: > On Thu, Jul 11, 2019 at 10:57:34PM +0800, Gao Xiang wrote: >> This commit adds erofs super block operations, including (u)mount, >> remount_fs, show_options, statfs, in addition to some private >> icache management functions

Re: [PATCH v2 03/24] erofs: add super block operations

2019-07-20 Thread Gao Xiang
On 2019/7/21 12:05, Al Viro wrote: > On Sun, Jul 21, 2019 at 11:08:42AM +0800, Gao Xiang wrote: > >> It is for debugging use as you said below, mainly for our internal >> testers whose jobs are >> to read kmsg logs and catch kernel problems. sb->s_id (device numbe

Re: [PATCH v2 03/24] erofs: add super block operations

2019-07-21 Thread Gao Xiang
On 2019/7/21 ??12:12, Gao Xiang wrote: > > > On 2019/7/21 12:05, Al Viro wrote: >> On Sun, Jul 21, 2019 at 11:08:42AM +0800, Gao Xiang wrote: >> >>> It is for debugging use as you said below, mainly for our internal >>> testers whose jobs are >>

[PATCH v3 03/24] erofs: add super block operations

2019-07-21 Thread Gao Xiang
This commit adds erofs super block operations, including (u)mount, remount_fs, show_options, statfs, in addition to some private icache management functions. Signed-off-by: Gao Xiang --- fs/erofs/super.c | 438 +++ 1 file changed, 438 insertions

[PATCH v3 08/24] erofs: add namei functions

2019-07-21 Thread Gao Xiang
This commit adds functions that transfer names to inodes. Signed-off-by: Gao Xiang --- fs/erofs/namei.c | 246 +++ 1 file changed, 246 insertions(+) create mode 100644 fs/erofs/namei.c diff --git a/fs/erofs/namei.c b/fs/erofs/namei.c new file mode

[PATCH v3 00/24] erofs: promote erofs from staging

2019-07-21 Thread Gao Xiang
ore actively. Share comments about EROFS! We think EROFS is useful to community as a part of Linux upstream. Thank you very much, Gao Xiang [1] http://web.archive.org/web/20190627021241/https://consumer.huawei.com/en/emui/ [2] https://lore.kernel.org/lkml/20190624072258.28362-1-hsiang...@aol.co

[PATCH v3 10/24] erofs: update Kconfig and Makefile

2019-07-21 Thread Gao Xiang
This commit adds Makefile and Kconfig for erofs, and updates Makefile and Kconfig files in the fs directory. Signed-off-by: Gao Xiang --- fs/Kconfig| 1 + fs/Makefile | 1 + fs/erofs/Kconfig | 45 + fs/erofs/Makefile | 9 + 4

[PATCH v3 14/24] erofs: introduce superblock registration

2019-07-21 Thread Gao Xiang
In order to introducing shrinker solution for erofs, let's manage all mounted erofs instances at first. Signed-off-by: Gao Xiang --- fs/erofs/Makefile | 2 +- fs/erofs/internal.h | 13 + fs/erofs/super.c| 9 + fs/erofs/utils.c

[PATCH v3 04/24] erofs: add raw address_space operations

2019-07-21 Thread Gao Xiang
This commit adds functions for meta and raw data, and also provides address_space_operations for raw data access. Signed-off-by: Gao Xiang --- fs/erofs/data.c | 423 1 file changed, 423 insertions(+) create mode 100644 fs/erofs/data.c diff

[PATCH v3 01/24] erofs: add on-disk layout

2019-07-21 Thread Gao Xiang
This commit adds the on-disk layout header file of erofs. On-disk format is compatible with erofs-staging added in 4.19. In addition, add EROFS_SUPER_MAGIC_V1 to magic.h. Signed-off-by: Gao Xiang --- fs/erofs/erofs_fs.h| 316 + include/uapi/linux

[PATCH v3 20/24] erofs: introduce generic decompression backend

2019-07-21 Thread Gao Xiang
ch. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig| 10 ++ fs/erofs/Makefile | 2 +- fs/erofs/compress.h | 89 fs/erofs/decompressor.c | 301 4 files changed, 401 insertions(+), 1 deletion(-) create mode 100644 fs/e

[PATCH v3 23/24] erofs: introduce cached decompression

2019-07-21 Thread Gao Xiang
This patch adds strategies which can be selected by users in order to cache both incomplete ends of compressed physical clusters as a complement of in-place I/O in order to boost random read, but it costs more memory than the in-place I/O only. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig

[PATCH v3 21/24] erofs: introduce LZ4 decompression inplace

2019-07-21 Thread Gao Xiang
d of course (see the following patches for test results). [1] https://github.com/lz4/lz4/commit/b17f578a919b7e6b078cede2d52be29dd48c8e8c https://github.com/lz4/lz4/commit/5997e139f53169fa3a1c1b4418d2452a90b01602 Signed-off-by: Gao Xiang --- fs/erofs/decompre

[PATCH v3 17/24] erofs: introduce per-CPU buffers implementation

2019-07-21 Thread Gao Xiang
x27;s leave it as-is for now. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig| 14 ++ fs/erofs/internal.h | 24 fs/erofs/utils.c| 12 3 files changed, 50 insertions(+) diff --git a/fs/erofs/Kconfig b/fs/erofs/Kconfig index 71d0f99

[PATCH v3 05/24] erofs: add inode operations

2019-07-21 Thread Gao Xiang
This adds core functions to get, read an inode. It adds statx support as well. Signed-off-by: Gao Xiang --- 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

[PATCH v3 02/24] erofs: add erofs in-memory stuffs

2019-07-21 Thread Gao Xiang
(). Signed-off-by: Gao Xiang --- fs/erofs/internal.h | 359 1 file changed, 359 insertions(+) create mode 100644 fs/erofs/internal.h diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h new file mode 100644 index ..bc3d146580d8 --- /dev/null

[PATCH v3 19/24] erofs: add erofs_allocpage()

2019-07-21 Thread Gao Xiang
This patch introduces an temporary _on-stack_ page pool to reuse the freed page directly as much as it can for better performance and release all pages at a time, it also slightly reduces the possibility of the potential memory allocation failure. Signed-off-by: Gao Xiang --- fs/erofs

[PATCH v3 18/24] erofs: introduce pagevec for decompression subsystem

2019-07-21 Thread Gao Xiang
whole array itself up will be needed. Signed-off-by: Gao Xiang --- fs/erofs/zpvec.h | 159 +++ 1 file changed, 159 insertions(+) create mode 100644 fs/erofs/zpvec.h diff --git a/fs/erofs/zpvec.h b/fs/erofs/zpvec.h new file mode 100644 index

[PATCH v3 06/24] erofs: support special inode

2019-07-21 Thread Gao Xiang
This patch adds to support special inode, such as block dev, char, socket, pipe inode. Signed-off-by: Gao Xiang --- fs/erofs/inode.c | 27 +-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c index 79ef5b38dfa3

[PATCH v3 07/24] erofs: add directory operations

2019-07-21 Thread Gao Xiang
This adds functions for directory, mainly readdir. Signed-off-by: Gao Xiang --- fs/erofs/dir.c | 147 + 1 file changed, 147 insertions(+) create mode 100644 fs/erofs/dir.c diff --git a/fs/erofs/dir.c b/fs/erofs/dir.c new file mode 100644 index

[PATCH v3 12/24] erofs: introduce tagged pointer

2019-07-21 Thread Gao Xiang
://en.wikipedia.org/wiki/Tagged_pointer Signed-off-by: Gao Xiang --- fs/erofs/tagptr.h | 110 ++ 1 file changed, 110 insertions(+) create mode 100644 fs/erofs/tagptr.h diff --git a/fs/erofs/tagptr.h b/fs/erofs/tagptr.h new file mode 100644 index

[PATCH v3 09/24] erofs: support tracepoint

2019-07-21 Thread Gao Xiang
Add basic tracepoints for ->readpage{,s}, ->lookup, ->destroy_inode, fill_inode and map_blocks. Signed-off-by: Gao Xiang --- include/trace/events/erofs.h | 241 +++ 1 file changed, 241 insertions(+) create mode 100644 include/trace/events/erofs.h dif

[PATCH v3 11/24] erofs: introduce xattr & posixacl support

2019-07-21 Thread Gao Xiang
lname: system.posix_acl_default struct erofs_xattr_entry: .e_name_len = 0 .e_name_index = EROFS_XATTR_INDEX_POSIX_ACL_DEFAULT (3) Signed-off-by: Gao Xiang --- fs/erofs/Kconfig| 37 +++ fs/erofs/Makefile | 1 + fs/erofs/inode.c| 14 +- fs/erofs/internal.h | 16

[PATCH v3 16/24] erofs: introduce workstation for decompression

2019-07-21 Thread Gao Xiang
future. Signed-off-by: Gao Xiang --- fs/erofs/internal.h | 83 ++ fs/erofs/super.c| 4 ++ fs/erofs/utils.c| 168 +++- 3 files changed, 253 insertions(+), 2 deletions(-) diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h ind

[PATCH v3 24/24] erofs: add document

2019-07-21 Thread Gao Xiang
This documents key features, usage, and on-disk design of erofs. Signed-off-by: Gao Xiang --- Documentation/filesystems/erofs.txt | 211 1 file changed, 211 insertions(+) create mode 100644 Documentation/filesystems/erofs.txt diff --git a/Documentation/filesystems

[PATCH v3 22/24] erofs: introduce the decompression frontend

2019-07-21 Thread Gao Xiang
allocation and all extra compressed data memcpy. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig|1 + fs/erofs/Makefile |2 +- fs/erofs/internal.h | 16 +- fs/erofs/super.c|9 + fs/erofs/zdata.c| 1269 +++ fs/erofs/zdata.h| 192

[PATCH v3 15/24] erofs: introduce erofs shrinker

2019-07-21 Thread Gao Xiang
bjects. Signed-off-by: Gao Xiang --- fs/erofs/internal.h | 7 fs/erofs/super.c| 6 +++ fs/erofs/utils.c| 94 - 3 files changed, 106 insertions(+), 1 deletion(-) diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h index 942e3cbe6076..7d4939

[PATCH v3 13/24] erofs: add compression indexes support

2019-07-21 Thread Gao Xiang
regrab' processes if they request the same meta page. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig | 9 + fs/erofs/Makefile| 1 + fs/erofs/inode.c | 2 +- fs/erofs/internal.h | 35 ++- fs/erofs/zmap.c | 460

Re: [PATCH v3 01/24] erofs: add on-disk layout

2019-07-21 Thread Gao Xiang
Hi Stephen, On 2019/7/22 11:26, Stephen Rothwell wrote: > Hi Gao, > > On Mon, 22 Jul 2019 10:50:20 +0800 Gao Xiang wrote: >> >> diff --git a/fs/erofs/erofs_fs.h b/fs/erofs/erofs_fs.h >> new file mode 100644 >> index ..e418725abfd6 >> ---

Re: [PATCH v3 12/24] erofs: introduce tagged pointer

2019-07-21 Thread Gao Xiang
Hi Amir, On 2019/7/22 12:39, Amir Goldstein wrote: > On Mon, Jul 22, 2019 at 5:54 AM Gao Xiang wrote: >> >> Currently kernel has scattered tagged pointer usages >> hacked by hand in plain code, without a unique and >> portable functionset to highlight the tagged point

Re: [PATCH v3 01/24] erofs: add on-disk layout

2019-07-21 Thread Gao Xiang
Hi Greg, On 2019/7/22 13:05, Greg Kroah-Hartman wrote: > On Mon, Jul 22, 2019 at 01:26:16PM +1000, Stephen Rothwell wrote: >> Hi Gao, >> >> On Mon, 22 Jul 2019 10:50:20 +0800 Gao Xiang wrote: >>> >>> diff --git a/fs/erofs/erofs_fs.h b/fs/erofs/erofs_

Re: [PATCH v3 12/24] erofs: introduce tagged pointer

2019-07-21 Thread Gao Xiang
On 2019/7/22 14:16, Amir Goldstein wrote: > On Mon, Jul 22, 2019 at 8:02 AM Gao Xiang wrote: >> >> Hi Amir, >> >> On 2019/7/22 12:39, Amir Goldstein wrote: >>> On Mon, Jul 22, 2019 at 5:54 AM Gao Xiang wrote: >>>> >>>> Currently ke

Re: [PATCH v3 23/24] erofs: introduce cached decompression

2019-07-22 Thread Gao Xiang
Hi David, On 2019/7/22 6:18, David Sterba wrote: > On Mon, Jul 22, 2019 at 10:50:42AM +0800, Gao Xiang wrote: >> +choice >> +prompt "EROFS Data Decompression mode" >> +depends on EROFS_FS_ZIP >> +default EROFS_FS_ZIP_CACHE_READAROUND >&g

Re: [PATCH v3 23/24] erofs: introduce cached decompression

2019-07-22 Thread Gao Xiang
Hi Ted, On 2019/7/22 9:25, Theodore Y. Ts'o wrote, > On Mon, Jul 22, 2019 at 06:58:59PM +0800, Gao Xiang wrote: >>> The number of individual Kconfig options is quite high, are you sure you >>> need them to be split like that? >> >> You mean the abov

Re: [PATCH v3 12/24] erofs: introduce tagged pointer

2019-07-22 Thread Gao Xiang
thing... If my approach seems cleaner, we could move to include/linux later after EROFS stuffs is done... Or I could use a better tagptr approach later if any... Thanks, Gao XIang ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Re: [PATCH v3 23/24] erofs: introduce cached decompression

2019-07-22 Thread Gao Xiang
On 2019/7/22 11:12, Theodore Y. Ts'o wrote: > On Mon, Jul 22, 2019 at 10:16:44PM +0800, Gao Xiang wrote: >> OK, I will give a try. One point I think is how to deal with the case >> if there is already cached information when remounting as well as you said. >> >&

Re: [PATCH v3 12/24] erofs: introduce tagged pointer

2019-07-22 Thread Gao Xiang
On 2019/7/23 12:35, Steven Rostedt wrote: > On Mon, 22 Jul 2019 23:33:53 +0800 > Gao Xiang wrote: > >> Hi Steven, >> >> On 2019/7/22 10:40, Steven Rostedt wrote: >>>>> and I'm not sure Al could accept __fdget conversi

Re: [PATCH v3 23/24] erofs: introduce cached decompression

2019-07-23 Thread Gao Xiang
On 2019/7/23 8:31, David Sterba wrote: > On Mon, Jul 22, 2019 at 06:58:59PM +0800, Gao Xiang wrote: >> On 2019/7/22 6:18, David Sterba wrote: >>> On Mon, Jul 22, 2019 at 10:50:42AM +0800, Gao Xiang wrote: >>>> +choice >>>> + prompt "ER

[PATCH v4 07/24] erofs: add directory operations

2019-07-25 Thread Gao Xiang
This adds functions for directory, mainly readdir. Signed-off-by: Gao Xiang --- fs/erofs/dir.c | 147 + 1 file changed, 147 insertions(+) create mode 100644 fs/erofs/dir.c diff --git a/fs/erofs/dir.c b/fs/erofs/dir.c new file mode 100644 index

[PATCH v4 03/24] erofs: add super block operations

2019-07-25 Thread Gao Xiang
This commit adds erofs super block operations, including (u)mount, remount_fs, show_options, statfs, in addition to some private icache management functions. Signed-off-by: Gao Xiang --- fs/erofs/super.c | 437 +++ 1 file changed, 437 insertions

[PATCH v4 13/24] erofs: add compression indexes support

2019-07-25 Thread Gao Xiang
regrab' processes if they request the same meta page. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig | 9 + fs/erofs/Makefile| 1 + fs/erofs/inode.c | 2 +- fs/erofs/internal.h | 35 ++- fs/erofs/zmap.c | 460

[PATCH v4 10/24] erofs: update Kconfig and Makefile

2019-07-25 Thread Gao Xiang
This commit adds Makefile and Kconfig for erofs, and updates Makefile and Kconfig files in the fs directory. Signed-off-by: Gao Xiang --- fs/Kconfig| 1 + fs/Makefile | 1 + fs/erofs/Kconfig | 36 fs/erofs/Makefile | 9 + 4 files

[PATCH v4 02/24] erofs: add erofs in-memory stuffs

2019-07-25 Thread Gao Xiang
(). Signed-off-by: Gao Xiang --- fs/erofs/internal.h | 355 1 file changed, 355 insertions(+) create mode 100644 fs/erofs/internal.h diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h new file mode 100644 index ..8e47ca55d572 --- /dev/null

[PATCH v4 09/24] erofs: support tracepoint

2019-07-25 Thread Gao Xiang
Add basic tracepoints for ->readpage{,s}, ->lookup, ->destroy_inode, fill_inode and map_blocks. Signed-off-by: Gao Xiang --- include/trace/events/erofs.h | 241 +++ 1 file changed, 241 insertions(+) create mode 100644 include/trace/events/erofs.h dif

[PATCH v4 01/24] erofs: add on-disk layout

2019-07-25 Thread Gao Xiang
This commit adds the on-disk layout header file of erofs. On-disk format is compatible with erofs-staging added in 4.19. In addition, add EROFS_SUPER_MAGIC_V1 to magic.h. Signed-off-by: Gao Xiang --- fs/erofs/erofs_fs.h| 316 + include/uapi/linux

[PATCH v4 21/24] erofs: introduce LZ4 decompression inplace

2019-07-25 Thread Gao Xiang
d of course (see the following patches for test results). [1] https://github.com/lz4/lz4/commit/b17f578a919b7e6b078cede2d52be29dd48c8e8c https://github.com/lz4/lz4/commit/5997e139f53169fa3a1c1b4418d2452a90b01602 Signed-off-by: Gao Xiang --- fs/erofs/decompre

[PATCH v4 05/24] erofs: add inode operations

2019-07-25 Thread Gao Xiang
This adds core functions to get, read an inode. It adds statx support as well. Signed-off-by: Gao Xiang --- 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

[PATCH v4 12/24] erofs: introduce tagged pointer

2019-07-25 Thread Gao Xiang
://en.wikipedia.org/wiki/Tagged_pointer Signed-off-by: Gao Xiang --- fs/erofs/tagptr.h | 110 ++ 1 file changed, 110 insertions(+) create mode 100644 fs/erofs/tagptr.h diff --git a/fs/erofs/tagptr.h b/fs/erofs/tagptr.h new file mode 100644 index

[PATCH v4 14/24] erofs: introduce superblock registration

2019-07-25 Thread Gao Xiang
In order to introducing shrinker solution for erofs, let's manage all mounted erofs instances at first. Signed-off-by: Gao Xiang --- fs/erofs/Makefile | 2 +- fs/erofs/internal.h | 13 + fs/erofs/super.c| 9 + fs/erofs/utils.c

[PATCH v4 06/24] erofs: support special inode

2019-07-25 Thread Gao Xiang
This patch adds to support special inode, such as block dev, char, socket, pipe inode. Signed-off-by: Gao Xiang --- fs/erofs/inode.c | 27 +-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c index b6ea997bc4ae

[PATCH v4 00/24] erofs: promote erofs from staging

2019-07-25 Thread Gao Xiang
s about EROFS! We think EROFS is useful to community as a part of Linux upstream. Thank you very much, Gao Xiang [1] http://web.archive.org/web/20190627021241/https://consumer.huawei.com/en/emui/ [2] https://lore.kernel.org/lkml/20190624072258.28362-1-hsiang...@aol.com/ Cc: Greg Kroah-H

[PATCH v4 08/24] erofs: add namei functions

2019-07-25 Thread Gao Xiang
This commit adds functions that transfer names to inodes. Signed-off-by: Gao Xiang --- fs/erofs/namei.c | 246 +++ 1 file changed, 246 insertions(+) create mode 100644 fs/erofs/namei.c diff --git a/fs/erofs/namei.c b/fs/erofs/namei.c new file mode

[PATCH v4 20/24] erofs: introduce generic decompression backend

2019-07-25 Thread Gao Xiang
ch. Signed-off-by: Gao Xiang --- fs/erofs/Makefile | 2 +- fs/erofs/compress.h | 62 fs/erofs/decompressor.c | 331 3 files changed, 394 insertions(+), 1 deletion(-) create mode 100644 fs/erofs/compress.h create mode 100644 fs/erofs

[PATCH v4 04/24] erofs: add raw address_space operations

2019-07-25 Thread Gao Xiang
This commit adds functions for meta and raw data, and also provides address_space_operations for raw data access. Signed-off-by: Gao Xiang --- fs/erofs/data.c | 423 1 file changed, 423 insertions(+) create mode 100644 fs/erofs/data.c diff

[PATCH v4 23/24] erofs: introduce cached decompression

2019-07-25 Thread Gao Xiang
This patch adds strategies which can be selected by users in order to cache both incomplete ends of compressed physical clusters as a complement of in-place I/O in order to boost random read, but it costs more memory than the in-place I/O only. Signed-off-by: Gao Xiang --- fs/erofs/internal.h

[PATCH v4 17/24] erofs: introduce per-CPU buffers implementation

2019-07-25 Thread Gao Xiang
x27;s leave it as-is for now. Signed-off-by: Gao Xiang --- fs/erofs/Kconfig| 14 ++ fs/erofs/internal.h | 25 + fs/erofs/utils.c| 12 3 files changed, 51 insertions(+) diff --git a/fs/erofs/Kconfig b/fs/erofs/Kconfig index a475fbe

[PATCH v4 18/24] erofs: introduce pagevec for decompression subsystem

2019-07-25 Thread Gao Xiang
whole array itself up will be needed. Signed-off-by: Gao Xiang --- fs/erofs/zpvec.h | 159 +++ 1 file changed, 159 insertions(+) create mode 100644 fs/erofs/zpvec.h diff --git a/fs/erofs/zpvec.h b/fs/erofs/zpvec.h new file mode 100644 index

[PATCH v4 11/24] erofs: introduce xattr & posixacl support

2019-07-25 Thread Gao Xiang
lname: system.posix_acl_default struct erofs_xattr_entry: .e_name_len = 0 .e_name_index = EROFS_XATTR_INDEX_POSIX_ACL_DEFAULT (3) Signed-off-by: Gao Xiang --- fs/erofs/Kconfig| 38 +++ fs/erofs/Makefile | 1 + fs/erofs/inode.c| 14 +- fs/erofs/internal.h | 16

[PATCH v4 15/24] erofs: introduce erofs shrinker

2019-07-25 Thread Gao Xiang
bjects. Signed-off-by: Gao Xiang --- fs/erofs/internal.h | 7 fs/erofs/super.c| 6 +++ fs/erofs/utils.c| 93 - 3 files changed, 105 insertions(+), 1 deletion(-) diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h index 2d437bcf140d..3b43f9

[PATCH v4 24/24] erofs: add document

2019-07-25 Thread Gao Xiang
This documents key features, usage, and on-disk design of erofs. Signed-off-by: Gao Xiang --- Documentation/filesystems/erofs.txt | 221 1 file changed, 221 insertions(+) create mode 100644 Documentation/filesystems/erofs.txt diff --git a/Documentation/filesystems

<    2   3   4   5   6   7   8   9   >