Hi Huang, Thank you for the patch! Yet something to improve: [auto build test ERROR on xiang-erofs/dev-test] [cannot apply to v5.12-rc1 next-20210305] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Huang-Jianan/erofs-avoid-memory-allocation-failure-during-rolling-decompression/20210305-142329 base: https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git dev-test config: parisc-randconfig-r012-20210305 (attached as .config) compiler: hppa64-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/ecb1173ba28392f322cbb4c9cb1a66524b10dd78 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Huang-Jianan/erofs-avoid-memory-allocation-failure-during-rolling-decompression/20210305-142329 git checkout ecb1173ba28392f322cbb4c9cb1a66524b10dd78 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=parisc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): fs/erofs/super.c: In function 'erofs_read_superblock': >> fs/erofs/super.c:191:5: error: 'struct erofs_sb_info' has no member named 'sync_decompress' 191 | sbi->sync_decompress = false; | ^~ vim +191 fs/erofs/super.c 124 125 static int erofs_read_superblock(struct super_block *sb) 126 { 127 struct erofs_sb_info *sbi; 128 struct page *page; 129 struct erofs_super_block *dsb; 130 unsigned int blkszbits; 131 void *data; 132 int ret; 133 134 page = read_mapping_page(sb->s_bdev->bd_inode->i_mapping, 0, NULL); 135 if (IS_ERR(page)) { 136 erofs_err(sb, "cannot read erofs superblock"); 137 return PTR_ERR(page); 138 } 139 140 sbi = EROFS_SB(sb); 141 142 data = kmap(page); 143 dsb = (struct erofs_super_block *)(data + EROFS_SUPER_OFFSET); 144 145 ret = -EINVAL; 146 if (le32_to_cpu(dsb->magic) != EROFS_SUPER_MAGIC_V1) { 147 erofs_err(sb, "cannot find valid erofs superblock"); 148 goto out; 149 } 150 151 sbi->feature_compat = le32_to_cpu(dsb->feature_compat); 152 if (sbi->feature_compat & EROFS_FEATURE_COMPAT_SB_CHKSUM) { 153 ret = erofs_superblock_csum_verify(sb, data); 154 if (ret) 155 goto out; 156 } 157 158 blkszbits = dsb->blkszbits; 159 /* 9(512 bytes) + LOG_SECTORS_PER_BLOCK == LOG_BLOCK_SIZE */ 160 if (blkszbits != LOG_BLOCK_SIZE) { 161 erofs_err(sb, "blkszbits %u isn't supported on this platform", 162 blkszbits); 163 goto out; 164 } 165 166 if (!check_layout_compatibility(sb, dsb)) 167 goto out; 168 169 sbi->blocks = le32_to_cpu(dsb->blocks); 170 sbi->meta_blkaddr = le32_to_cpu(dsb->meta_blkaddr); 171 #ifdef CONFIG_EROFS_FS_XATTR 172 sbi->xattr_blkaddr = le32_to_cpu(dsb->xattr_blkaddr); 173 #endif 174 sbi->islotbits = ilog2(sizeof(struct erofs_inode_compact)); 175 sbi->root_nid = le16_to_cpu(dsb->root_nid); 176 sbi->inos = le64_to_cpu(dsb->inos); 177 178 sbi->build_time = le64_to_cpu(dsb->build_time); 179 sbi->build_time_nsec = le32_to_cpu(dsb->build_time_nsec); 180 181 memcpy(&sb->s_uuid, dsb->uuid, sizeof(dsb->uuid)); 182 183 ret = strscpy(sbi->volume_name, dsb->volume_name, 184 sizeof(dsb->volume_name)); 185 if (ret < 0) { /* -E2BIG */ 186 erofs_err(sb, "bad volume name without NIL terminator"); 187 ret = -EFSCORRUPTED; 188 goto out; 189 } 190 > 191 sbi->sync_decompress = false; 192 /* parse on-disk compression configurations */ 193 z_erofs_load_lz4_config(sbi, dsb); 194 ret = 0; 195 out: 196 kunmap(page); 197 put_page(page); 198 return ret; 199 } 200 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org