llvm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [koverstreet-bcachefs:bcachefs-testing 851/875] fs/bcachefs/data/reconcile.c:317:6: error: cannot jump from this goto statement to its label
@ 2025-11-14  8:02 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-11-14  8:02 UTC (permalink / raw)
  To: Kent Overstreet; +Cc: llvm, oe-kbuild-all

tree:   https://github.com/koverstreet/bcachefs bcachefs-testing
head:   ab3c04679170b0e63c55680f725ceb4218b2b04c
commit: 08209c1a245fe1ca0b78b31747565a552670f76e [851/875] bcachefs: bch_extent_rebalance_bp
config: s390-defconfig (https://download.01.org/0day-ci/archive/20251114/202511141510.PFNhwbDi-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 0bba1e76581bad04e7d7f09f5115ae5e2989e0d9)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251114/202511141510.PFNhwbDi-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/202511141510.PFNhwbDi-lkp@intel.com/

Note: the koverstreet-bcachefs/bcachefs-testing HEAD ab3c04679170b0e63c55680f725ceb4218b2b04c builds fine.
      It only hurts bisectability.

All errors (new ones prefixed by >>):

>> fs/bcachefs/data/reconcile.c:317:6: error: cannot jump from this goto statement to its label
     317 |         if (fsck_err_on(!bp.v->level,
         |             ^
   fs/bcachefs/init/error.h:143:2: note: expanded from macro 'fsck_err_on'
     143 |         __fsck_err_on(cond, c, FSCK_CAN_FIX|FSCK_CAN_IGNORE, _err_type, __VA_ARGS__)
         |         ^
   fs/bcachefs/init/error.h:130:20: note: expanded from macro '__fsck_err_on'
     130 |         (unlikely(cond) ? __fsck_err(c, _flags, _err_type, __VA_ARGS__) : false);\
         |                           ^
   fs/bcachefs/init/error.h:117:26: note: expanded from macro '__fsck_err'
     117 | #define __fsck_err(...)         fsck_err_wrap(bch2_fsck_err(__VA_ARGS__))
         |                                 ^
   fs/bcachefs/init/error.h:111:3: note: expanded from macro 'fsck_err_wrap'
     111 |                 goto fsck_err;                                          \
         |                 ^
   fs/bcachefs/data/reconcile.c:342:25: note: jump bypasses initialization of variable with __attribute__((cleanup))
     342 |         CLASS(btree_node_iter, iter2)(trans, bp.v->btree_id, bp.v->pos, 0, bp.v->level - 1, 0);
         |                                ^
   1 error generated.


vim +317 fs/bcachefs/data/reconcile.c

   307	
   308	static struct bkey_s_c rebalance_bp_get_key(struct btree_trans *trans,
   309						    struct btree_iter *iter,
   310						    struct bkey_s_c_backpointer bp)
   311	{
   312		struct bch_fs *c = trans->c;
   313		int ret = 0;
   314		CLASS(printbuf, buf)();
   315	
   316		/* don't allow bps to non btree nodes: */
 > 317		if (fsck_err_on(!bp.v->level,
   318				trans, reconcile_bp_to_leaf_node_key,
   319				"reconcile bp to leaf node key\n%s",
   320				(bch2_bkey_val_to_text(&buf, c, bp.s_c), buf.buf))) {
   321			ret =   bch2_btree_delete(trans, BTREE_ID_reconcile_scan, bp.k->p, 0) ?:
   322				bch2_trans_commit(trans, NULL, NULL, BCH_TRANS_COMMIT_no_enospc);
   323			return ret ? bkey_s_c_err(ret) : bkey_s_c_null;
   324		}
   325	
   326		bch2_trans_node_iter_init(trans, iter, bp.v->btree_id, bp.v->pos, 0, bp.v->level, 0);
   327		struct bkey_s_c k = bch2_btree_iter_peek_slot(iter);
   328		if (bkey_err(k))
   329			return k;
   330	
   331		/*
   332		 * peek_slot() doesn't normally return NULL - except when we ask for a
   333		 * key at a btree level that doesn't exist.
   334		 *
   335		 * We may want to revisit this and change peek_slot():
   336		 */
   337		if (k.k && bch2_bkey_get_rebalance_bp(c, k) == bp.k->p.offset)
   338			return k;
   339	
   340		/* walk down a level, check for btree_node_will_make_reachable(b)) */
   341	
   342		CLASS(btree_node_iter, iter2)(trans, bp.v->btree_id, bp.v->pos, 0, bp.v->level - 1, 0);
   343		struct btree *b = bch2_btree_iter_peek_node(&iter2);
   344		if (IS_ERR(b))
   345			return bkey_s_c_err(PTR_ERR(b));
   346	
   347		if (b) {
   348			if (btree_node_will_make_reachable(b))
   349				return bkey_s_c_null;
   350	
   351			k = bkey_i_to_s_c(&b->key);
   352			if (bch2_bkey_get_rebalance_bp(c, k) == bp.k->p.offset)
   353				return k;
   354		}
   355	
   356		prt_printf(&buf, "reconcile backpointer to missing/incorrect btree ptr\n");
   357		bch2_bkey_val_to_text(&buf, c, bp.s_c);
   358		prt_newline(&buf);
   359		if (k.k)
   360			bch2_bkey_val_to_text(&buf, c, k);
   361		else
   362			prt_str(&buf, "(no key)");
   363	
   364		if (b) {
   365			prt_newline(&buf);
   366			bch2_bkey_val_to_text(&buf, c, bkey_i_to_s_c(&b->key));
   367		}
   368	
   369		if (fsck_err(trans, reconcile_bp_to_missing_btree_ptr, "%s", buf.buf))
   370			ret =   bch2_btree_delete(trans, BTREE_ID_reconcile_scan, bp.k->p, 0) ?:
   371				bch2_trans_commit(trans, NULL, NULL, BCH_TRANS_COMMIT_no_enospc);
   372	fsck_err:
   373		return ret ? bkey_s_c_err(ret) : bkey_s_c_null;
   374	}
   375	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-11-14  8:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-14  8:02 [koverstreet-bcachefs:bcachefs-testing 851/875] fs/bcachefs/data/reconcile.c:317:6: error: cannot jump from this goto statement to its label kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).