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
next prev parent 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