Hi Chao,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on f2fs/dev-test]
[cannot apply to v5.4-rc5 next-20191031]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see
https://stackoverflow.com/a/37406982]
url:
https://github.com/0day-ci/linux/commits/Chao-Yu/f2fs-support-data-compre...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
config: x86_64-randconfig-e004-201943 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
fs/f2fs/file.c: In function 'f2fs_truncate_data_blocks_range':
> fs/f2fs/file.c:543:5: error: implicit declaration of function
'stat_sub_compr_blocks'; did you mean 'stat_dec_compr_blocks'?
[-Werror=implicit-function-declaration]
stat_sub_compr_blocks(dn->inode,
compr_blocks);
^~~~~~~~~~~~~~~~~~~~~
stat_dec_compr_blocks
Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size
Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size
Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_read
Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_write
Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:arch_set_bit
Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:arch_clear_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:arch_test_and_set_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:arch_test_and_set_bit_lock
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:variable_test_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls64
Cyclomatic Complexity 1 include/asm-generic/bitops-instrumented.h:set_bit
Cyclomatic Complexity 1 include/asm-generic/bitops-instrumented.h:clear_bit
Cyclomatic Complexity 1
include/asm-generic/bitops-instrumented.h:test_and_set_bit_lock
Cyclomatic Complexity 1 include/linux/log2.h:__ilog2_u64
Cyclomatic Complexity 1 include/linux/list.h:list_empty
Cyclomatic Complexity 3 include/linux/time64.h:timespec64_equal
Cyclomatic Complexity 1 arch/x86/include/asm/current.h:get_current
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_read
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_inc
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_dec
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_dec_and_test
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_read
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_inc
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_dec
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_dec_and_test
Cyclomatic Complexity 1 include/linux/string.h:strnlen
Cyclomatic Complexity 4 include/linux/string.h:strlen
Cyclomatic Complexity 3 include/linux/string.h:memset
Cyclomatic Complexity 4 include/linux/string.h:memcpy
Cyclomatic Complexity 1 include/linux/err.h:PTR_ERR
Cyclomatic Complexity 1 include/linux/thread_info.h:check_object_size
Cyclomatic Complexity 5 include/linux/thread_info.h:check_copy_size
Cyclomatic Complexity 5 arch/x86/include/asm/preempt.h:__preempt_count_add
Cyclomatic Complexity 5 arch/x86/include/asm/preempt.h:__preempt_count_sub
Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock
Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock
Cyclomatic Complexity 1 include/linux/dcache.h:d_inode
Cyclomatic Complexity 1 include/linux/uidgid.h:__kuid_val
Cyclomatic Complexity 1 include/linux/uidgid.h:__kgid_val
Cyclomatic Complexity 1 include/linux/uidgid.h:uid_eq
Cyclomatic Complexity 1 include/linux/uidgid.h:gid_eq
Cyclomatic Complexity 1 include/linux/page-flags.h:PageTail
Cyclomatic Complexity 1 include/linux/page-flags.h:PageLocked
Cyclomatic Complexity 1 include/linux/page-flags.h:PageDirty
Cyclomatic Complexity 1 include/linux/page-flags.h:PageSwapBacked
Cyclomatic Complexity 1 include/linux/page-flags.h:PageMappedToDisk
Cyclomatic Complexity 3 include/linux/page-flags.h:PageSwapCache
Cyclomatic Complexity 1 include/linux/page-flags.h:SetPageUptodate
Cyclomatic Complexity 1 include/linux/projid.h:__kprojid_val
Cyclomatic Complexity 1 include/linux/projid.h:from_kprojid
Cyclomatic Complexity 1 include/linux/fs.h:i_size_read
Cyclomatic Complexity 1 include/linux/fs.h:i_size_write
Cyclomatic Complexity 1 include/linux/fs.h:file_inode
Cyclomatic Complexity 1 include/linux/fs.h:sb_rdonly
Cyclomatic Complexity 1 include/linux/fs.h:parent_ino
Cyclomatic Complexity 1 include/linux/fs.h:simple_fill_fsxattr
Cyclomatic Complexity 1 include/linux/page_ref.h:page_ref_count
Cyclomatic Complexity 1 include/linux/page_ref.h:page_ref_dec_and_test
Cyclomatic Complexity 2 include/linux/overflow.h:array_size
Cyclomatic Complexity 2 include/linux/uaccess.h:copy_from_user
Cyclomatic Complexity 2 include/linux/uaccess.h:copy_to_user
Cyclomatic Complexity 1 include/linux/uaccess.h:pagefault_disabled_inc
Cyclomatic Complexity 1 include/linux/uaccess.h:pagefault_disabled_dec
Cyclomatic Complexity 1 include/linux/uaccess.h:pagefault_disable
Cyclomatic Complexity 1 include/linux/uaccess.h:pagefault_enable
Cyclomatic Complexity 1 include/linux/mm.h:put_devmap_managed_page
Cyclomatic Complexity 1 include/linux/mm.h:lowmem_page_address
Cyclomatic Complexity 1 include/asm-generic/cacheflush.h:flush_dcache_page
Cyclomatic Complexity 1 include/linux/highmem.h:kunmap
Cyclomatic Complexity 1 include/linux/highmem.h:kmap_atomic
Cyclomatic Complexity 1 include/linux/highmem.h:__kunmap_atomic
Cyclomatic Complexity 1 include/linux/pagemap.h:page_offset
Cyclomatic Complexity 4 include/linux/buffer_head.h:block_page_mkwrite_return
Cyclomatic Complexity 1 include/linux/file.h:__to_fd
Cyclomatic Complexity 1 include/linux/kasan.h:kasan_kmalloc
Cyclomatic Complexity 3 include/linux/slab.h:kmalloc_type
Cyclomatic Complexity 28 include/linux/slab.h:kmalloc_index
Cyclomatic Complexity 1 include/linux/slab.h:kmem_cache_alloc_trace
Cyclomatic Complexity 1 include/linux/slab.h:kmalloc_order_trace
Cyclomatic Complexity 1 include/linux/slab.h:kmalloc_large
Cyclomatic Complexity 4 include/linux/slab.h:kmalloc
Cyclomatic Complexity 1 include/linux/blkdev.h:blk_queue_zoned_model
Cyclomatic Complexity 2 include/linux/blkdev.h:blk_queue_is_zoned
Cyclomatic Complexity 1 include/linux/blkdev.h:bdev_get_queue
Cyclomatic Complexity 2 include/linux/blkdev.h:bdev_is_zoned
Cyclomatic Complexity 1 include/linux/uio.h:iov_iter_rw
Cyclomatic Complexity 1 include/linux/uio.h:iov_iter_count
Cyclomatic Complexity 1 arch/x86/include/asm/compat.h:compat_ptr
Cyclomatic Complexity 6 include/linux/quotaops.h:is_quota_modification
Cyclomatic Complexity 1 include/linux/quotaops.h:dquot_initialize
Cyclomatic Complexity 1 include/linux/quotaops.h:dquot_transfer
Cyclomatic Complexity 1 include/linux/fscrypt.h:fscrypt_has_encryption_key
Cyclomatic Complexity 1 include/linux/fscrypt.h:fscrypt_ioctl_set_policy
Cyclomatic Complexity 1 include/linux/fscrypt.h:fscrypt_ioctl_get_policy
Cyclomatic Complexity 1 include/linux/fscrypt.h:fscrypt_ioctl_get_policy_ex
Cyclomatic Complexity 1 include/linux/fscrypt.h:fscrypt_ioctl_add_key
--
fs/f2fs/inode.c: In function 'do_read_inode':
> fs/f2fs/inode.c:448:2: error: implicit declaration of function
'stat_add_compr_blocks'; did you mean 'stat_dec_compr_blocks'?
[-Werror=implicit-function-declaration]
stat_add_compr_blocks(inode,
F2FS_I(inode)->i_compressed_blocks);
^~~~~~~~~~~~~~~~~~~~~
stat_dec_compr_blocks
fs/f2fs/inode.c: In function 'f2fs_evict_inode':
> fs/f2fs/inode.c:756:2: error: implicit declaration of function
'stat_sub_compr_blocks'; did you mean 'stat_dec_compr_blocks'?
[-Werror=implicit-function-declaration]
stat_sub_compr_blocks(inode,
F2FS_I(inode)->i_compressed_blocks);
^~~~~~~~~~~~~~~~~~~~~
stat_dec_compr_blocks
Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size
Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_read
Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_write
Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:arch_set_bit
Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:arch_clear_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:variable_test_bit
Cyclomatic Complexity 1 include/asm-generic/bitops-instrumented.h:set_bit
Cyclomatic Complexity 1 include/asm-generic/bitops-instrumented.h:clear_bit
Cyclomatic Complexity 3 include/linux/time64.h:timespec64_equal
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_read
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_dec_and_test
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_read
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_dec_and_test
Cyclomatic Complexity 3 include/linux/string.h:memset
Cyclomatic Complexity 1 include/linux/err.h:ERR_PTR
Cyclomatic Complexity 1 include/linux/err.h:PTR_ERR
Cyclomatic Complexity 3 include/linux/kdev_t.h:old_valid_dev
Cyclomatic Complexity 1 include/linux/kdev_t.h:old_encode_dev
Cyclomatic Complexity 1 include/linux/kdev_t.h:old_decode_dev
Cyclomatic Complexity 1 include/linux/kdev_t.h:new_encode_dev
Cyclomatic Complexity 1 include/linux/kdev_t.h:new_decode_dev
Cyclomatic Complexity 1 include/linux/uidgid.h:__kuid_val
Cyclomatic Complexity 1 include/linux/uidgid.h:__kgid_val
Cyclomatic Complexity 1 include/linux/uidgid.h:make_kuid
Cyclomatic Complexity 1 include/linux/uidgid.h:make_kgid
Cyclomatic Complexity 1 include/linux/uidgid.h:from_kuid
Cyclomatic Complexity 1 include/linux/uidgid.h:from_kgid
Cyclomatic Complexity 1 include/linux/page-flags.h:PageLocked
Cyclomatic Complexity 1 include/linux/page-flags.h:PageDirty
Cyclomatic Complexity 1 include/linux/page-flags.h:ClearPageChecked
Cyclomatic Complexity 1 include/linux/page-flags.h:PageSwapBacked
Cyclomatic Complexity 1 include/linux/page-flags.h:PageWriteback
Cyclomatic Complexity 3 include/linux/page-flags.h:PageSwapCache
Cyclomatic Complexity 1 include/linux/projid.h:__kprojid_val
Cyclomatic Complexity 1 include/linux/projid.h:make_kprojid
Cyclomatic Complexity 1 include/linux/projid.h:from_kprojid
Cyclomatic Complexity 1 include/linux/fs.h:i_size_read
Cyclomatic Complexity 1 include/linux/fs.h:i_size_write
Cyclomatic Complexity 1 include/linux/fs.h:i_uid_read
Cyclomatic Complexity 1 include/linux/fs.h:i_gid_read
Cyclomatic Complexity 1 include/linux/fs.h:i_uid_write
Cyclomatic Complexity 1 include/linux/fs.h:i_gid_write
Cyclomatic Complexity 1 include/linux/page_ref.h:page_ref_count
Cyclomatic Complexity 1 include/linux/page_ref.h:page_ref_dec_and_test
Cyclomatic Complexity 1 include/linux/mm.h:put_devmap_managed_page
Cyclomatic Complexity 1 include/linux/mm.h:lowmem_page_address
Cyclomatic Complexity 1 include/linux/pagemap.h:mapping_set_gfp_mask
Cyclomatic Complexity 1 include/crypto/hash.h:crypto_shash_descsize
Cyclomatic Complexity 1 include/linux/quotaops.h:dquot_initialize
Cyclomatic Complexity 1 include/linux/quotaops.h:dquot_initialize_needed
Cyclomatic Complexity 1 include/linux/quotaops.h:dquot_drop
Cyclomatic Complexity 1 include/linux/fscrypt.h:fscrypt_put_encryption_info
Cyclomatic Complexity 1 include/linux/fsverity.h:fsverity_cleanup_inode
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:set_raw_extent
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:time_to_inject
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:F2FS_I
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:F2FS_SB
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:F2FS_I_SB
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:F2FS_M_SB
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:F2FS_CKPT
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:F2FS_NODE
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:F2FS_INODE
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:SM_I
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:SIT_I
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:FREE_I
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:NODE_MAPPING
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:set_sbi_flag
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:__is_set_ckpt_flags
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:is_set_ckpt_flags
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:F2FS_HAS_BLOCKS
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:get_pages
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:get_dirty_pages
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:get_blocktype_secs
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:IS_INODE
Cyclomatic Complexity 2 fs/f2fs/f2fs.h:offset_in_addr
Cyclomatic Complexity 8 fs/f2fs/f2fs.h:get_inline_info
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:is_file
Cyclomatic Complexity 5 fs/f2fs/f2fs.h:f2fs_is_time_consistent
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:f2fs_cp_error
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:get_extra_isize
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:inline_data_addr
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:get_inline_xattr_addrs
Cyclomatic Complexity 2 fs/f2fs/f2fs.h:__is_valid_data_blkaddr
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:f2fs_sb_has_extra_attr
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:f2fs_sb_has_project_quota
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:f2fs_sb_has_inode_chksum
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:f2fs_sb_has_flexible_inline_xattr
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:f2fs_sb_has_inode_crtime
Cyclomatic Complexity 1 fs/f2fs/f2fs.h:f2fs_sb_has_compression
Cyclomatic Complexity 1 fs/f2fs/node.h:ino_of_node
Cyclomatic Complexity 1 fs/f2fs/node.h:nid_of_node
Cyclomatic Complexity 1 fs/f2fs/node.h:is_node
Cyclomatic Complexity 1 fs/f2fs/node.h:clear_inline_node
Cyclomatic Complexity 2 fs/f2fs/node.h:set_cold_node
Cyclomatic Complexity 2 fs/f2fs/segment.h:CURSEG_I
Cyclomatic Complexity 1 fs/f2fs/segment.h:get_seg_entry
vim +543 fs/f2fs/file.c
516
517 void f2fs_truncate_data_blocks_range(struct dnode_of_data *dn, int count)
518 {
519 struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
520 struct f2fs_node *raw_node;
521 int nr_free = 0, ofs = dn->ofs_in_node, len = count;
522 __le32 *addr;
523 int base = 0;
524 bool compressed_cluster = false;
525 int cluster_index = 0, valid_blocks = 0;
526 int cluster_size = F2FS_I(dn->inode)->i_cluster_size;
527
528 if (IS_INODE(dn->node_page) && f2fs_has_extra_attr(dn->inode))
529 base = get_extra_isize(dn->inode);
530
531 raw_node = F2FS_NODE(dn->node_page);
532 addr = blkaddr_in_node(raw_node) + base + ofs;
533
534 /* Assumption: truncateion starts with cluster */
535 for (; count > 0; count--, addr++, dn->ofs_in_node++, cluster_index++) {
536 block_t blkaddr = le32_to_cpu(*addr);
537
538 if (f2fs_compressed_file(dn->inode) &&
539 !(cluster_index & (cluster_size - 1))) {
540 if (compressed_cluster) {
541 int compr_blocks = cluster_size - valid_blocks;
542
543 stat_sub_compr_blocks(dn->inode, compr_blocks);
544 F2FS_I(dn->inode)->i_compressed_blocks -=
545 compr_blocks;
546 }
547 compressed_cluster = (blkaddr == COMPRESS_ADDR);
548 valid_blocks = 0;
549 }
550
551 if (blkaddr == NULL_ADDR)
552 continue;
553
554 dn->data_blkaddr = NULL_ADDR;
555 f2fs_set_data_blkaddr(dn);
556
557 if (__is_valid_data_blkaddr(blkaddr)) {
558 if (!f2fs_is_valid_blkaddr(sbi, blkaddr,
559 DATA_GENERIC_ENHANCE))
560 continue;
561 if (compressed_cluster)
562 valid_blocks++;
563 }
564
565 if (dn->ofs_in_node == 0 && IS_INODE(dn->node_page))
566 clear_inode_flag(dn->inode, FI_FIRST_BLOCK_WRITTEN);
567
568 f2fs_invalidate_blocks(sbi, blkaddr);
569 nr_free++;
570 }
571
572 if (compressed_cluster) {
573 int compr_blocks = cluster_size - valid_blocks;
574
575 stat_sub_compr_blocks(dn->inode, compr_blocks);
576 F2FS_I(dn->inode)->i_compressed_blocks -= compr_blocks;
577 }
578
579 if (nr_free) {
580 pgoff_t fofs;
581 /*
582 * once we invalidate valid blkaddr in range [ofs, ofs + count],
583 * we will invalidate all blkaddr in the whole range.
584 */
585 fofs = f2fs_start_bidx_of_node(ofs_of_node(dn->node_page),
586 dn->inode) + ofs;
587 f2fs_update_extent_cache_range(dn, fofs, 0, len);
588 dec_valid_block_count(sbi, dn->inode, nr_free);
589 }
590 dn->ofs_in_node = ofs;
591
592 f2fs_update_time(sbi, REQ_TIME);
593 trace_f2fs_truncate_data_blocks_range(dn->inode, dn->nid,
594 dn->ofs_in_node, nr_free);
595 }
596
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation