Linux Btrfs filesystem development
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Qu Wenruo <wqu@suse.com>, linux-btrfs@vger.kernel.org
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH v2] btrfs: remove v0 extent handling
Date: Fri, 11 Aug 2023 18:32:42 +0800	[thread overview]
Message-ID: <202308111815.mJwoiury-lkp@intel.com> (raw)
In-Reply-To: <6258b0bf5e41e52ca0e163e34650d186363628c6.1691740017.git.wqu@suse.com>

Hi Qu,

kernel test robot noticed the following build warnings:

[auto build test WARNING on kdave/for-next]
[also build test WARNING on linus/master v6.5-rc5 next-20230809]
[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/Qu-Wenruo/btrfs-remove-v0-extent-handling/20230811-154905
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
patch link:    https://lore.kernel.org/r/6258b0bf5e41e52ca0e163e34650d186363628c6.1691740017.git.wqu%40suse.com
patch subject: [PATCH v2] btrfs: remove v0 extent handling
config: powerpc-randconfig-r034-20230811 (https://download.01.org/0day-ci/archive/20230811/202308111815.mJwoiury-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230811/202308111815.mJwoiury-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/202308111815.mJwoiury-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> fs/btrfs/print-tree.c:100:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
     100 |                           "unexpected extent item size, has %u expect >= %lu",
         |                                                                          ~~~
         |                                                                          %u
     101 |                           item_size, sizeof(*ei));
         |                                      ^~~~~~~~~~~
   fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
      46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
         |                                        ~~~    ^~~~
   fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
      27 |         _btrfs_printk(fs_info, fmt, ##args)
         |                                ~~~    ^~~~
   1 warning generated.
--
>> fs/btrfs/extent-tree.c:172:18: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
     172 |                         "unexpected extent item size, has %u expect >= %lu",
         |                                                                        ~~~
         |                                                                        %u
     173 |                                   item_size, sizeof(*ei));
         |                                              ^~~~~~~~~~~
   fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
      46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
         |                                        ~~~    ^~~~
   fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
      27 |         _btrfs_printk(fs_info, fmt, ##args)
         |                                ~~~    ^~~~
   fs/btrfs/extent-tree.c:867:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
     867 |                           "unexpected extent item size, has %llu expect >= %lu",
         |                                                                            ~~~
         |                                                                            %u
     868 |                           item_size, sizeof(*ei));
         |                                      ^~~~~~~~~~~
   fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
      46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
         |                                        ~~~    ^~~~
   fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
      27 |         _btrfs_printk(fs_info, fmt, ##args)
         |                                ~~~    ^~~~
   fs/btrfs/extent-tree.c:1671:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
    1671 |                           "unexpected extent item size, has %u expect >= %lu",
         |                                                                          ~~~
         |                                                                          %u
    1672 |                           item_size, sizeof(*ei));
         |                                      ^~~~~~~~~~~
   fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
      46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
         |                                        ~~~    ^~~~
   fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
      27 |         _btrfs_printk(fs_info, fmt, ##args)
         |                                ~~~    ^~~~
   fs/btrfs/extent-tree.c:3102:17: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
    3102 |                           "unexpected extent item size, has %u expect >= %lu",
         |                                                                          ~~~
         |                                                                          %u
    3103 |                           item_size, sizeof(*ei));
         |                                      ^~~~~~~~~~~
   fs/btrfs/messages.h:46:40: note: expanded from macro 'btrfs_err'
      46 |         btrfs_printk(fs_info, KERN_ERR fmt, ##args)
         |                                        ~~~    ^~~~
   fs/btrfs/messages.h:27:32: note: expanded from macro 'btrfs_printk'
      27 |         _btrfs_printk(fs_info, fmt, ##args)
         |                                ~~~    ^~~~
   4 warnings generated.

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for HOTPLUG_CPU
   Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n])
   Selected by [y]:
   - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y]


vim +100 fs/btrfs/print-tree.c

    82	
    83	static void print_extent_item(const struct extent_buffer *eb, int slot, int type)
    84	{
    85		struct btrfs_extent_item *ei;
    86		struct btrfs_extent_inline_ref *iref;
    87		struct btrfs_extent_data_ref *dref;
    88		struct btrfs_shared_data_ref *sref;
    89		struct btrfs_disk_key key;
    90		unsigned long end;
    91		unsigned long ptr;
    92		u32 item_size = btrfs_item_size(eb, slot);
    93		u64 flags;
    94		u64 offset;
    95		int ref_index = 0;
    96	
    97		if (unlikely(item_size < sizeof(*ei))) {
    98			btrfs_err(eb->fs_info,
    99				  "unexpected extent item size, has %u expect >= %lu",
 > 100				  item_size, sizeof(*ei));
   101			btrfs_handle_fs_error(eb->fs_info, -EUCLEAN, NULL);
   102		}
   103	
   104		ei = btrfs_item_ptr(eb, slot, struct btrfs_extent_item);
   105		flags = btrfs_extent_flags(eb, ei);
   106	
   107		pr_info("\t\textent refs %llu gen %llu flags %llu\n",
   108		       btrfs_extent_refs(eb, ei), btrfs_extent_generation(eb, ei),
   109		       flags);
   110	
   111		if ((type == BTRFS_EXTENT_ITEM_KEY) &&
   112		    flags & BTRFS_EXTENT_FLAG_TREE_BLOCK) {
   113			struct btrfs_tree_block_info *info;
   114			info = (struct btrfs_tree_block_info *)(ei + 1);
   115			btrfs_tree_block_key(eb, info, &key);
   116			pr_info("\t\ttree block key (%llu %u %llu) level %d\n",
   117			       btrfs_disk_key_objectid(&key), key.type,
   118			       btrfs_disk_key_offset(&key),
   119			       btrfs_tree_block_level(eb, info));
   120			iref = (struct btrfs_extent_inline_ref *)(info + 1);
   121		} else {
   122			iref = (struct btrfs_extent_inline_ref *)(ei + 1);
   123		}
   124	
   125		ptr = (unsigned long)iref;
   126		end = (unsigned long)ei + item_size;
   127		while (ptr < end) {
   128			iref = (struct btrfs_extent_inline_ref *)ptr;
   129			type = btrfs_extent_inline_ref_type(eb, iref);
   130			offset = btrfs_extent_inline_ref_offset(eb, iref);
   131			pr_info("\t\tref#%d: ", ref_index++);
   132			switch (type) {
   133			case BTRFS_TREE_BLOCK_REF_KEY:
   134				pr_cont("tree block backref root %llu\n", offset);
   135				break;
   136			case BTRFS_SHARED_BLOCK_REF_KEY:
   137				pr_cont("shared block backref parent %llu\n", offset);
   138				/*
   139				 * offset is supposed to be a tree block which
   140				 * must be aligned to nodesize.
   141				 */
   142				if (!IS_ALIGNED(offset, eb->fs_info->sectorsize))
   143					pr_info(
   144				"\t\t\t(parent %llu not aligned to sectorsize %u)\n",
   145						offset, eb->fs_info->sectorsize);
   146				break;
   147			case BTRFS_EXTENT_DATA_REF_KEY:
   148				dref = (struct btrfs_extent_data_ref *)(&iref->offset);
   149				print_extent_data_ref(eb, dref);
   150				break;
   151			case BTRFS_SHARED_DATA_REF_KEY:
   152				sref = (struct btrfs_shared_data_ref *)(iref + 1);
   153				pr_cont("shared data backref parent %llu count %u\n",
   154				       offset, btrfs_shared_data_ref_count(eb, sref));
   155				/*
   156				 * Offset is supposed to be a tree block which must be
   157				 * aligned to sectorsize.
   158				 */
   159				if (!IS_ALIGNED(offset, eb->fs_info->sectorsize))
   160					pr_info(
   161				"\t\t\t(parent %llu not aligned to sectorsize %u)\n",
   162					     offset, eb->fs_info->sectorsize);
   163				break;
   164			default:
   165				pr_cont("(extent %llu has INVALID ref type %d)\n",
   166					  eb->start, type);
   167				return;
   168			}
   169			ptr += btrfs_extent_inline_ref_size(type);
   170		}
   171		WARN_ON(ptr > end);
   172	}
   173	

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

  reply	other threads:[~2023-08-11 10:33 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-11  7:47 [PATCH v2] btrfs: remove v0 extent handling Qu Wenruo
2023-08-11 10:32 ` kernel test robot [this message]
2023-08-11 10:42   ` Qu Wenruo

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=202308111815.mJwoiury-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=wqu@suse.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox