All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Nguyen Ngoc Thang <ngocthang2710.1999@gmail.com>,
	Viacheslav Dubeyko <slava@dubeyko.com>
Cc: oe-kbuild-all@lists.linux.dev,
	John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
	Yangtao Li <frank.li@vivo.com>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	syzbot+f8ce6c197125ab9d72ce@syzkaller.appspotmail.com,
	Nguyen Ngoc Thang <ngocthang2710.1999@gmail.com>
Subject: Re: [PATCH v6] hfsplus: validate b-tree fork extents at mount and inode read
Date: Wed, 23 Sep 2026 00:28:50 +0800	[thread overview]
Message-ID: <202609230024.oUY5bARR-lkp@intel.com> (raw)
In-Reply-To: <20260918085156.920842-1-ngocthang2710.1999@gmail.com>

Hi Nguyen,

kernel test robot noticed the following build errors:

[auto build test ERROR on brauner-vfs/vfs.all]
[also build test ERROR on linus/master v7.3-rc4 next-20260921]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Nguyen-Ngoc-Thang/hfsplus-validate-b-tree-fork-extents-at-mount-and-inode-read/20260918-155156
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git vfs.all
patch link:    https://lore.kernel.org/r/20260918085156.920842-1-ngocthang2710.1999%40gmail.com
patch subject: [PATCH v6] hfsplus: validate b-tree fork extents at mount and inode read
config: powerpc64-randconfig-1000-20260922 (https://download.01.org/0day-ci/archive/20260923/202609230024.oUY5bARR-lkp@intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260923/202609230024.oUY5bARR-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609230024.oUY5bARR-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

>> fs/hfsplus/inode.c:562:5: error: conflicting types for 'hfsplus_inode_read_fork'
    int hfsplus_inode_read_fork(struct inode *inode, struct hfsplus_fork_raw *fork)
        ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/hfsplus/inode.c:22:
   fs/hfsplus/hfsplus_fs.h:456:6: note: previous declaration of 'hfsplus_inode_read_fork' was here
    void hfsplus_inode_read_fork(struct inode *inode,
         ^~~~~~~~~~~~~~~~~~~~~~~
   fs/hfsplus/inode.c: In function 'hfsplus_inode_read_fork':
>> fs/hfsplus/inode.c:571:11: error: implicit declaration of function 'hfsplus_check_fork'; did you mean 'hfsplus_free_fork'? [-Werror=implicit-function-declaration]
        ret = hfsplus_check_fork(sb, fork->extents, sbi->total_blocks);
              ^~~~~~~~~~~~~~~~~~
              hfsplus_free_fork
   In file included from include/asm-generic/bug.h:31,
                    from arch/powerpc/include/asm/bug.h:116,
                    from include/linux/bug.h:5,
                    from include/linux/instrumented.h:10,
                    from include/asm-generic/bitops/instrumented-atomic.h:14,
                    from arch/powerpc/include/asm/bitops.h:321,
                    from include/linux/bitops.h:67,
                    from include/linux/bitmap.h:8,
                    from include/linux/nodemask.h:91,
                    from include/linux/list_lru.h:12,
                    from include/linux/fs/super_types.h:7,
                    from include/linux/fs/super.h:5,
                    from include/linux/fs.h:5,
                    from include/linux/highmem.h:5,
                    from include/linux/bvec.h:10,
                    from include/linux/blk_types.h:10,
                    from include/linux/blkdev.h:9,
                    from fs/hfsplus/inode.c:12:
>> include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'u64' {aka 'long long unsigned int'} [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^~~~~~
   include/linux/printk.h:483:11: note: in definition of macro 'printk_index_wrap'
      _p_func(_fmt, ##__VA_ARGS__);    \
              ^~~~
   include/linux/printk.h:554:2: note: in expansion of macro 'printk'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
     ^~~~~~
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:554:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
   fs/hfsplus/inode.c:573:2: note: in expansion of macro 'pr_err'
     pr_err("hfsplus: fork check failed for inode %lu (err=%d)\n", inode->i_ino, ret);
     ^~~~~~
>> fs/hfsplus/inode.c:574:10: error: 'HFSPLUS_I_CORRUPT_TREE' undeclared (first use in this function); did you mean 'HFSPLUS_I_CAT_DIRTY'?
     set_bit(HFSPLUS_I_CORRUPT_TREE, &hip->flags);
             ^~~~~~~~~~~~~~~~~~~~~~
             HFSPLUS_I_CAT_DIRTY
   fs/hfsplus/inode.c:574:10: note: each undeclared identifier is reported only once for each function it appears in
>> fs/hfsplus/inode.c:580:33: error: 'HFSPLUS_EXTENT_LAST_IDX' undeclared (first use in this function); did you mean 'HFSPLUS_EXT_CNID'?
        for (count = 0, i = 0; i <= HFSPLUS_EXTENT_LAST_IDX; i++)
                                    ^~~~~~~~~~~~~~~~~~~~~~~
                                    HFSPLUS_EXT_CNID
   cc1: some warnings being treated as errors
--
>> fs/hfsplus/extents.c:42:5: warning: no previous prototype for 'hfsplus_check_fork' [-Wmissing-prototypes]
    int hfsplus_check_fork(struct super_block *sb, struct hfsplus_extent *ext, u32 volume_blocks)
        ^~~~~~~~~~~~~~~~~~


vim +/hfsplus_inode_read_fork +562 fs/hfsplus/inode.c

   561	
 > 562	int hfsplus_inode_read_fork(struct inode *inode, struct hfsplus_fork_raw *fork)
   563	{
   564	    struct super_block *sb = inode->i_sb;
   565	    struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
   566	    struct hfsplus_inode_info *hip = HFSPLUS_I(inode);
   567	    u32 count;
   568	    int i, ret;
   569	
   570	    /* Validate fork extents to catch on-disk corruption early */
 > 571	    ret = hfsplus_check_fork(sb, fork->extents, sbi->total_blocks);
   572	    if (ret) {
   573		pr_err("hfsplus: fork check failed for inode %lu (err=%d)\n", inode->i_ino, ret);
 > 574		set_bit(HFSPLUS_I_CORRUPT_TREE, &hip->flags);
   575		sb->s_flags |= SB_RDONLY;
   576		return ret; /* Return error directly to the caller */
   577	    }
   578	
   579	    memcpy(&hip->first_extents, &fork->extents, sizeof(hfsplus_extent_rec));
 > 580	    for (count = 0, i = 0; i <= HFSPLUS_EXTENT_LAST_IDX; i++)
   581		count += be32_to_cpu(fork->extents[i].block_count);
   582	    hip->first_blocks = count;
   583	    memset(hip->cached_extents, 0, sizeof(hfsplus_extent_rec));
   584	    hip->cached_start = 0;
   585	    hip->cached_blocks = 0;
   586	
   587	    hip->alloc_blocks = be32_to_cpu(fork->total_blocks);
   588	    hip->phys_size = inode->i_size = be64_to_cpu(fork->total_size);
   589	    hip->fs_blocks =
   590		(inode->i_size + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
   591	    inode_set_bytes(inode, hip->fs_blocks << sb->s_blocksize_bits);
   592	    hip->clump_blocks =
   593		be32_to_cpu(fork->clump_size) >> sbi->alloc_blksz_shift;
   594	    if (!hip->clump_blocks) {
   595		hip->clump_blocks = HFSPLUS_IS_RSRC(inode) ?
   596		    sbi->rsrc_clump_blocks :
   597		    sbi->data_clump_blocks;
   598	    }
   599	
   600	    return 0;
   601	}
   602	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  parent reply	other threads:[~2026-09-22 16:29 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-18  8:51 [PATCH v6] hfsplus: validate b-tree fork extents at mount and inode read Nguyen Ngoc Thang
2026-09-21 21:07 ` Viacheslav Dubeyko
2026-09-22 16:28 ` kernel test robot [this message]
2026-09-22 17:45 ` kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2026-09-18  8:39 Nguyen Ngoc Thang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202609230024.oUY5bARR-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=frank.li@vivo.com \
    --cc=glaubitz@physik.fu-berlin.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ngocthang2710.1999@gmail.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=slava@dubeyko.com \
    --cc=syzbot+f8ce6c197125ab9d72ce@syzkaller.appspotmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.