[xiang-erofs:dev-test 17/17] fs/erofs/inode.c:296: undefined reference to `z_erofs_aops'
kernel test robot
lkp at intel.com
Wed Apr 12 01:08:18 AEST 2023
tree: https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git dev-test
head: 64be79d41fc0aefc57b4127f949e9995e739398e
commit: 64be79d41fc0aefc57b4127f949e9995e739398e [17/17] erofs: get rid of z_erofs_fill_inode()
config: powerpc-randconfig-r022-20230410 (https://download.01.org/0day-ci/archive/20230411/202304112232.IFr8fsS7-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 12.1.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://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git/commit/?id=64be79d41fc0aefc57b4127f949e9995e739398e
git remote add xiang-erofs https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
git fetch --no-tags xiang-erofs dev-test
git checkout 64be79d41fc0aefc57b4127f949e9995e739398e
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=powerpc olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp at intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202304112232.IFr8fsS7-lkp@intel.com/
All errors (new ones prefixed by >>):
powerpc-linux-ld: fs/erofs/inode.o: in function `erofs_fill_inode':
>> fs/erofs/inode.c:296: undefined reference to `z_erofs_aops'
>> powerpc-linux-ld: fs/erofs/inode.c:296: undefined reference to `z_erofs_aops'
vim +296 fs/erofs/inode.c
245
246 static int erofs_fill_inode(struct inode *inode)
247 {
248 struct erofs_inode *vi = EROFS_I(inode);
249 struct erofs_buf buf = __EROFS_BUF_INITIALIZER;
250 void *kaddr;
251 unsigned int ofs;
252 int err = 0;
253
254 trace_erofs_fill_inode(inode);
255
256 /* read inode base data from disk */
257 kaddr = erofs_read_inode(&buf, inode, &ofs);
258 if (IS_ERR(kaddr))
259 return PTR_ERR(kaddr);
260
261 /* setup the new inode */
262 switch (inode->i_mode & S_IFMT) {
263 case S_IFREG:
264 inode->i_op = &erofs_generic_iops;
265 if (erofs_inode_is_data_compressed(vi->datalayout))
266 inode->i_fop = &generic_ro_fops;
267 else
268 inode->i_fop = &erofs_file_fops;
269 break;
270 case S_IFDIR:
271 inode->i_op = &erofs_dir_iops;
272 inode->i_fop = &erofs_dir_fops;
273 inode_nohighmem(inode);
274 break;
275 case S_IFLNK:
276 err = erofs_fill_symlink(inode, kaddr, ofs);
277 if (err)
278 goto out_unlock;
279 inode_nohighmem(inode);
280 break;
281 case S_IFCHR:
282 case S_IFBLK:
283 case S_IFIFO:
284 case S_IFSOCK:
285 inode->i_op = &erofs_generic_iops;
286 init_special_inode(inode, inode->i_mode, inode->i_rdev);
287 goto out_unlock;
288 default:
289 err = -EFSCORRUPTED;
290 goto out_unlock;
291 }
292
293 if (erofs_inode_is_data_compressed(vi->datalayout)) {
294 if (!erofs_is_fscache_mode(inode->i_sb) &&
295 inode->i_sb->s_blocksize_bits == PAGE_SHIFT) {
> 296 inode->i_mapping->a_ops = &z_erofs_aops;
297 err = 0;
298 } else {
299 err = -EOPNOTSUPP;
300 }
301 goto out_unlock;
302 }
303 inode->i_mapping->a_ops = &erofs_raw_access_aops;
304 mapping_set_large_folios(inode->i_mapping);
305 #ifdef CONFIG_EROFS_FS_ONDEMAND
306 if (erofs_is_fscache_mode(inode->i_sb))
307 inode->i_mapping->a_ops = &erofs_fscache_access_aops;
308 #endif
309
310 out_unlock:
311 erofs_put_metabuf(&buf);
312 return err;
313 }
314
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
More information about the Linux-erofs
mailing list