Re: [PATCH 2/2] erofs: decompress in endio if possible

From: kernel test robot
Date: Fri Mar 05 2021 - 03:22:52 EST


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 <lkp@xxxxxxxxx>

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@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip