On Fri, Mar 05, 2021 at 04:21:42PM +0800, Huang Jianan via Linux-erofs wrote: > z_erofs_decompressqueue_endio may not be executed in the atomic > context, for example, when dm-verity is turned on. In this scenario, > data can be decompressed directly to get rid of additional kworker > scheduling overhead. Also, it makes no sense to apply synchronous > decompression for such case.
Could you resend the whole patchset [v4 RESEND] as a whole? Or you can use --in-reply-to to attach the original version. Yet I'd suggest you could resend them all this time... > > Signed-off-by: Huang Jianan <[email protected]> > Signed-off-by: Guo Weichao <[email protected]> > --- > fs/erofs/internal.h | 3 +++ > fs/erofs/super.c | 4 ++++ > fs/erofs/zdata.c | 16 +++++++++++++--- > 3 files changed, 20 insertions(+), 3 deletions(-) > > diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h > index 67a7ec945686..b817cb85d67b 100644 > --- a/fs/erofs/internal.h > +++ b/fs/erofs/internal.h > @@ -70,6 +70,9 @@ struct erofs_sb_info { > > /* pseudo inode to manage cached pages */ > struct inode *managed_cache; > + > + /* decide whether to decompress synchronously */ > + bool readahead_sync_decompress; > #endif /* CONFIG_EROFS_FS_ZIP */ > u32 blocks; > u32 meta_blkaddr; > diff --git a/fs/erofs/super.c b/fs/erofs/super.c > index d5a6b9b888a5..77819efe9b15 100644 > --- a/fs/erofs/super.c > +++ b/fs/erofs/super.c > @@ -175,6 +175,10 @@ static int erofs_read_superblock(struct super_block *sb) > sbi->root_nid = le16_to_cpu(dsb->root_nid); > sbi->inos = le64_to_cpu(dsb->inos); > > +#ifdef CONFIG_EROFS_FS_ZIP > + sbi->readahead_sync_decompress = false; > +#endif How about moving this stuff to erofs_default_options() as what we did for max_sync_decompress_pages? Thanks, Gao Xiang

