Hi Colin, kernel test robot noticed the following build warnings: [auto build test WARNING on linus/master] [also build test WARNING on v6.4 next-20230630] [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/Colin-Ian-King/ext2-remove-redundant-assignment-to-variable-desc/20230701-003209 base: linus/master patch link: https://lore.kernel.org/r/20230630163033.165326-1-colin.i.king%40gmail.com patch subject: [PATCH][next] ext2: remove redundant assignment to variable desc config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20230701/202307010203.gNQQkF8h-lkp@xxxxxxxxx/config) compiler: alpha-linux-gcc (GCC) 12.3.0 reproduce: (https://download.01.org/0day-ci/archive/20230701/202307010203.gNQQkF8h-lkp@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202307010203.gNQQkF8h-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): fs/ext2/ialloc.c: In function 'find_group_orlov': >> fs/ext2/ialloc.c:276:41: warning: variable 'best_desc' set but not used [-Wunused-but-set-variable] 276 | struct ext2_group_desc *best_desc = NULL; | ^~~~~~~~~ vim +/best_desc +276 fs/ext2/ialloc.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 250 ^1da177e4c3f41 Linus Torvalds 2005-04-16 251 static int find_group_orlov(struct super_block *sb, struct inode *parent) ^1da177e4c3f41 Linus Torvalds 2005-04-16 252 { ^1da177e4c3f41 Linus Torvalds 2005-04-16 253 int parent_group = EXT2_I(parent)->i_block_group; ^1da177e4c3f41 Linus Torvalds 2005-04-16 254 struct ext2_sb_info *sbi = EXT2_SB(sb); ^1da177e4c3f41 Linus Torvalds 2005-04-16 255 struct ext2_super_block *es = sbi->s_es; ^1da177e4c3f41 Linus Torvalds 2005-04-16 256 int ngroups = sbi->s_groups_count; ^1da177e4c3f41 Linus Torvalds 2005-04-16 257 int inodes_per_group = EXT2_INODES_PER_GROUP(sb); ^1da177e4c3f41 Linus Torvalds 2005-04-16 258 int freei; ^1da177e4c3f41 Linus Torvalds 2005-04-16 259 int avefreei; ^1da177e4c3f41 Linus Torvalds 2005-04-16 260 int free_blocks; ^1da177e4c3f41 Linus Torvalds 2005-04-16 261 int avefreeb; ^1da177e4c3f41 Linus Torvalds 2005-04-16 262 int blocks_per_dir; ^1da177e4c3f41 Linus Torvalds 2005-04-16 263 int ndirs; ^1da177e4c3f41 Linus Torvalds 2005-04-16 264 int max_debt, max_dirs, min_blocks, min_inodes; ^1da177e4c3f41 Linus Torvalds 2005-04-16 265 int group = -1, i; ^1da177e4c3f41 Linus Torvalds 2005-04-16 266 struct ext2_group_desc *desc; ^1da177e4c3f41 Linus Torvalds 2005-04-16 267 ^1da177e4c3f41 Linus Torvalds 2005-04-16 268 freei = percpu_counter_read_positive(&sbi->s_freeinodes_counter); ^1da177e4c3f41 Linus Torvalds 2005-04-16 269 avefreei = freei / ngroups; ^1da177e4c3f41 Linus Torvalds 2005-04-16 270 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); ^1da177e4c3f41 Linus Torvalds 2005-04-16 271 avefreeb = free_blocks / ngroups; ^1da177e4c3f41 Linus Torvalds 2005-04-16 272 ndirs = percpu_counter_read_positive(&sbi->s_dirs_counter); ^1da177e4c3f41 Linus Torvalds 2005-04-16 273 2b0143b5c986be David Howells 2015-03-17 274 if ((parent == d_inode(sb->s_root)) || ^1da177e4c3f41 Linus Torvalds 2005-04-16 275 (EXT2_I(parent)->i_flags & EXT2_TOPDIR_FL)) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 @276 struct ext2_group_desc *best_desc = NULL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 277 int best_ndir = inodes_per_group; ^1da177e4c3f41 Linus Torvalds 2005-04-16 278 int best_group = -1; ^1da177e4c3f41 Linus Torvalds 2005-04-16 279 8032bf1233a746 Jason A. Donenfeld 2022-10-09 280 parent_group = get_random_u32_below(ngroups); ^1da177e4c3f41 Linus Torvalds 2005-04-16 281 for (i = 0; i < ngroups; i++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 282 group = (parent_group + i) % ngroups; ef2fb67989d30f Eric Sandeen 2007-10-16 283 desc = ext2_get_group_desc (sb, group, NULL); ^1da177e4c3f41 Linus Torvalds 2005-04-16 284 if (!desc || !desc->bg_free_inodes_count) ^1da177e4c3f41 Linus Torvalds 2005-04-16 285 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 286 if (le16_to_cpu(desc->bg_used_dirs_count) >= best_ndir) ^1da177e4c3f41 Linus Torvalds 2005-04-16 287 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 288 if (le16_to_cpu(desc->bg_free_inodes_count) < avefreei) ^1da177e4c3f41 Linus Torvalds 2005-04-16 289 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 290 if (le16_to_cpu(desc->bg_free_blocks_count) < avefreeb) ^1da177e4c3f41 Linus Torvalds 2005-04-16 291 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 292 best_group = group; ^1da177e4c3f41 Linus Torvalds 2005-04-16 293 best_ndir = le16_to_cpu(desc->bg_used_dirs_count); ^1da177e4c3f41 Linus Torvalds 2005-04-16 294 best_desc = desc; ^1da177e4c3f41 Linus Torvalds 2005-04-16 295 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 296 if (best_group >= 0) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 297 group = best_group; ^1da177e4c3f41 Linus Torvalds 2005-04-16 298 goto found; ^1da177e4c3f41 Linus Torvalds 2005-04-16 299 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 300 goto fallback; ^1da177e4c3f41 Linus Torvalds 2005-04-16 301 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 302 ^1da177e4c3f41 Linus Torvalds 2005-04-16 303 if (ndirs == 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 304 ndirs = 1; /* percpu_counters are approximate... */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 305 ^1da177e4c3f41 Linus Torvalds 2005-04-16 306 blocks_per_dir = (le32_to_cpu(es->s_blocks_count)-free_blocks) / ndirs; ^1da177e4c3f41 Linus Torvalds 2005-04-16 307 ^1da177e4c3f41 Linus Torvalds 2005-04-16 308 max_dirs = ndirs / ngroups + inodes_per_group / 16; ^1da177e4c3f41 Linus Torvalds 2005-04-16 309 min_inodes = avefreei - inodes_per_group / 4; ^1da177e4c3f41 Linus Torvalds 2005-04-16 310 min_blocks = avefreeb - EXT2_BLOCKS_PER_GROUP(sb) / 4; ^1da177e4c3f41 Linus Torvalds 2005-04-16 311 ^1da177e4c3f41 Linus Torvalds 2005-04-16 312 max_debt = EXT2_BLOCKS_PER_GROUP(sb) / max(blocks_per_dir, BLOCK_COST); ^1da177e4c3f41 Linus Torvalds 2005-04-16 313 if (max_debt * INODE_COST > inodes_per_group) ^1da177e4c3f41 Linus Torvalds 2005-04-16 314 max_debt = inodes_per_group / INODE_COST; ^1da177e4c3f41 Linus Torvalds 2005-04-16 315 if (max_debt > 255) ^1da177e4c3f41 Linus Torvalds 2005-04-16 316 max_debt = 255; ^1da177e4c3f41 Linus Torvalds 2005-04-16 317 if (max_debt == 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 318 max_debt = 1; ^1da177e4c3f41 Linus Torvalds 2005-04-16 319 ^1da177e4c3f41 Linus Torvalds 2005-04-16 320 for (i = 0; i < ngroups; i++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 321 group = (parent_group + i) % ngroups; ef2fb67989d30f Eric Sandeen 2007-10-16 322 desc = ext2_get_group_desc (sb, group, NULL); ^1da177e4c3f41 Linus Torvalds 2005-04-16 323 if (!desc || !desc->bg_free_inodes_count) ^1da177e4c3f41 Linus Torvalds 2005-04-16 324 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 325 if (sbi->s_debts[group] >= max_debt) ^1da177e4c3f41 Linus Torvalds 2005-04-16 326 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 327 if (le16_to_cpu(desc->bg_used_dirs_count) >= max_dirs) ^1da177e4c3f41 Linus Torvalds 2005-04-16 328 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 329 if (le16_to_cpu(desc->bg_free_inodes_count) < min_inodes) ^1da177e4c3f41 Linus Torvalds 2005-04-16 330 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 331 if (le16_to_cpu(desc->bg_free_blocks_count) < min_blocks) ^1da177e4c3f41 Linus Torvalds 2005-04-16 332 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 333 goto found; ^1da177e4c3f41 Linus Torvalds 2005-04-16 334 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 335 ^1da177e4c3f41 Linus Torvalds 2005-04-16 336 fallback: ^1da177e4c3f41 Linus Torvalds 2005-04-16 337 for (i = 0; i < ngroups; i++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 338 group = (parent_group + i) % ngroups; ef2fb67989d30f Eric Sandeen 2007-10-16 339 desc = ext2_get_group_desc (sb, group, NULL); ^1da177e4c3f41 Linus Torvalds 2005-04-16 340 if (!desc || !desc->bg_free_inodes_count) ^1da177e4c3f41 Linus Torvalds 2005-04-16 341 continue; ^1da177e4c3f41 Linus Torvalds 2005-04-16 342 if (le16_to_cpu(desc->bg_free_inodes_count) >= avefreei) ^1da177e4c3f41 Linus Torvalds 2005-04-16 343 goto found; ^1da177e4c3f41 Linus Torvalds 2005-04-16 344 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 345 ^1da177e4c3f41 Linus Torvalds 2005-04-16 346 if (avefreei) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 347 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 348 * The free-inodes counter is approximate, and for really small ^1da177e4c3f41 Linus Torvalds 2005-04-16 349 * filesystems the above test can fail to find any blockgroups ^1da177e4c3f41 Linus Torvalds 2005-04-16 350 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 351 avefreei = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 352 goto fallback; ^1da177e4c3f41 Linus Torvalds 2005-04-16 353 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 354 ^1da177e4c3f41 Linus Torvalds 2005-04-16 355 return -1; ^1da177e4c3f41 Linus Torvalds 2005-04-16 356 ^1da177e4c3f41 Linus Torvalds 2005-04-16 357 found: ^1da177e4c3f41 Linus Torvalds 2005-04-16 358 return group; ^1da177e4c3f41 Linus Torvalds 2005-04-16 359 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 360 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki