All of lore.kernel.org
 help / color / mirror / Atom feed
* [bcachefs:bcachefs-testing 614/741] fs/bcachefs/btree/commit.c:717:4: error: implicit declaration of function '__WARN'; did you mean 'WARN'?
@ 2025-11-03  0:31 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-11-03  0:31 UTC (permalink / raw)
  To: Kent Overstreet; +Cc: oe-kbuild-all, Kent Overstreet

tree:   https://evilpiepirate.org/git/bcachefs.git bcachefs-testing
head:   8a918d454d1a7b71a9eefad3b7269d615579cf8d
commit: d85853d9cbdc339f7f75c76ef54e568a9a3a14de [614/741] bcachefs: BCH_FSCK_ERR_validate_error_in_commit
config: nios2-randconfig-r073-20251103 (https://download.01.org/0day-ci/archive/20251103/202511030833.KrCtzrOl-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251103/202511030833.KrCtzrOl-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/202511030833.KrCtzrOl-lkp@intel.com/

All errors (new ones prefixed by >>):

   fs/bcachefs/btree/commit.c: In function 'bch2_trans_commit_write_locked':
>> fs/bcachefs/btree/commit.c:717:4: error: implicit declaration of function '__WARN'; did you mean 'WARN'? [-Werror=implicit-function-declaration]
       __WARN();
       ^~~~~~
       WARN
   cc1: some warnings being treated as errors


vim +717 fs/bcachefs/btree/commit.c

   590	
   591	static inline int
   592	bch2_trans_commit_write_locked(struct btree_trans *trans,
   593				       enum bch_trans_commit_flags flags,
   594				       struct btree_insert_entry **stopped_at,
   595				       unsigned long trace_ip)
   596	{
   597		struct bch_fs *c = trans->c;
   598		struct btree_trans_commit_hook *h;
   599		unsigned u64s = 0;
   600		int ret = 0;
   601	
   602		bch2_trans_verify_not_unlocked_or_in_restart(trans);
   603	#if 0
   604		/* todo: bring back dynamic fault injection */
   605		if (race_fault()) {
   606			trace_and_count(c, trans_restart_fault_inject, trans, trace_ip);
   607			return btree_trans_restart(trans, BCH_ERR_transaction_restart_fault_inject);
   608		}
   609	#endif
   610		/*
   611		 * Check if the insert will fit in the leaf node with the write lock
   612		 * held, otherwise another thread could write the node changing the
   613		 * amount of space available:
   614		 */
   615	
   616		prefetch(&trans->c->journal.flags);
   617	
   618		trans_for_each_update(trans, i) {
   619			/* Multiple inserts might go to same leaf: */
   620			if (!same_leaf_as_prev(trans, i))
   621				u64s = 0;
   622	
   623			u64s += i->k->k.u64s;
   624			ret = !i->cached
   625				? btree_key_can_insert(trans, insert_l(trans, i)->b, u64s)
   626				: btree_key_can_insert_cached(trans, flags, trans->paths + i->path, u64s);
   627			if (ret) {
   628				*stopped_at = i;
   629				return ret;
   630			}
   631	
   632			i->k->k.needs_whiteout = false;
   633		}
   634	
   635		/*
   636		 * Don't get journal reservation until after we know insert will
   637		 * succeed:
   638		 */
   639		if (likely(!(flags & BCH_TRANS_COMMIT_no_journal_res))) {
   640			try(bch2_trans_journal_res_get(trans,
   641					(flags & BCH_WATERMARK_MASK)|
   642					JOURNAL_RES_GET_NONBLOCK));
   643	
   644			if (unlikely(trans->journal_transaction_names))
   645				journal_transaction_name(trans);
   646		}
   647	
   648		/*
   649		 * Not allowed to fail after we've gotten our journal reservation - we
   650		 * have to use it:
   651		 */
   652	
   653		if (IS_ENABLED(CONFIG_BCACHEFS_DEBUG) &&
   654		    !(flags & BCH_TRANS_COMMIT_no_journal_res)) {
   655			if (static_branch_unlikely(&bch2_journal_seq_verify))
   656				trans_for_each_update(trans, i)
   657					i->k->k.bversion.lo = trans->journal_res.seq;
   658			else if (static_branch_unlikely(&bch2_inject_invalid_keys))
   659				trans_for_each_update(trans, i)
   660					i->k->k.bversion = MAX_VERSION;
   661		}
   662	
   663		h = trans->hooks;
   664		while (h) {
   665			try(h->fn(trans, h));
   666			h = h->next;
   667		}
   668	
   669		struct bkey_i *accounting;
   670	
   671		scoped_guard(percpu_read, &c->mark_lock)
   672			for (accounting = btree_trans_subbuf_base(trans, &trans->accounting);
   673			     accounting != btree_trans_subbuf_top(trans, &trans->accounting);
   674			     accounting = bkey_next(accounting)) {
   675				ret = bch2_accounting_trans_commit_hook(trans,
   676							bkey_i_to_accounting(accounting), flags);
   677				if (unlikely(ret)) {
   678					for (struct bkey_i *i = btree_trans_subbuf_base(trans, &trans->accounting);
   679					     i != accounting;
   680					     i = bkey_next(i))
   681						bch2_accounting_trans_commit_revert(trans, bkey_i_to_accounting(i), flags);
   682					return ret;
   683				}
   684			}
   685	
   686		/* XXX: we only want to run this if deltas are nonzero */
   687		bch2_trans_account_disk_usage_change(trans);
   688	
   689		trans_for_each_update(trans, i)
   690			if (btree_node_type_has_atomic_triggers(i->bkey_type)) {
   691				ret = run_one_mem_trigger(trans, i, BTREE_TRIGGER_atomic|i->flags);
   692				if (bch2_fs_fatal_err_on(ret, c, "fatal error in transaction commit: %s", bch2_err_str(ret)))
   693					return ret;
   694			}
   695	
   696		if (unlikely(c->gc_pos.phase)) {
   697			ret = bch2_trans_commit_run_gc_triggers(trans);
   698			if (bch2_fs_fatal_err_on(ret, c, "fatal error in transaction commit: %s", bch2_err_str(ret)))
   699				return ret;
   700		}
   701	
   702		struct bkey_validate_context validate_context = { .from	= BKEY_VALIDATE_commit };
   703	
   704		if (!(flags & BCH_TRANS_COMMIT_no_journal_res))
   705			validate_context.flags = BCH_VALIDATE_write|BCH_VALIDATE_commit;
   706	
   707		for (struct jset_entry *i = btree_trans_journal_entries_start(trans);
   708		     i != btree_trans_journal_entries_top(trans);
   709		     i = vstruct_next(i)) {
   710			ret = bch2_journal_entry_validate(c, NULL, i,
   711							  bcachefs_metadata_version_current,
   712							  CPU_BIG_ENDIAN, validate_context);
   713			if (unlikely(ret)) {
   714				bch2_trans_inconsistent(trans, "invalid journal entry on insert from %s\n",
   715							trans->fn);
   716				bch2_sb_error_count(c, BCH_FSCK_ERR_validate_error_in_commit);
 > 717				__WARN();
   718				return ret;
   719			}
   720		}
   721	
   722		trans_for_each_update(trans, i) {
   723			validate_context.level	= i->level;
   724			validate_context.btree	= i->btree_id;
   725	
   726			ret = bch2_bkey_validate(c, bkey_i_to_s_c(i->k), validate_context);
   727			if (unlikely(ret)){
   728				bch2_trans_inconsistent(trans, "invalid bkey on insert from %s -> %ps\n",
   729							trans->fn, (void *) i->ip_allocated);
   730				bch2_sb_error_count(c, BCH_FSCK_ERR_validate_error_in_commit);
   731				__WARN();
   732				return ret;
   733			}
   734			btree_insert_entry_checks(trans, i);
   735		}
   736	
   737		if (likely(!(flags & BCH_TRANS_COMMIT_no_journal_res))) {
   738			struct journal *j = &c->journal;
   739			struct jset_entry *entry;
   740	
   741			trans_for_each_update(trans, i) {
   742				if (i->key_cache_already_flushed)
   743					continue;
   744	
   745				if (i->flags & BTREE_UPDATE_nojournal)
   746					continue;
   747	
   748				verify_update_old_key(trans, i);
   749	
   750				if (trans->journal_transaction_names) {
   751					entry = bch2_journal_add_entry(j, &trans->journal_res,
   752							       BCH_JSET_ENTRY_overwrite,
   753							       i->btree_id, i->level,
   754							       i->old_k.u64s);
   755					bkey_reassemble((struct bkey_i *) entry->start,
   756							(struct bkey_s_c) { &i->old_k, i->old_v });
   757				}
   758	
   759				entry = bch2_journal_add_entry(j, &trans->journal_res,
   760						       BCH_JSET_ENTRY_btree_keys,
   761						       i->btree_id, i->level,
   762						       i->k->k.u64s);
   763				bkey_copy((struct bkey_i *) entry->start, i->k);
   764			}
   765	
   766			memcpy_u64s_small(journal_res_entry(&c->journal, &trans->journal_res),
   767					  btree_trans_journal_entries_start(trans),
   768					  trans->journal_entries.u64s);
   769	
   770			EBUG_ON(trans->journal_res.u64s < trans->journal_entries.u64s);
   771	
   772			trans->journal_res.offset	+= trans->journal_entries.u64s;
   773			trans->journal_res.u64s		-= trans->journal_entries.u64s;
   774	
   775			if (trans->accounting.u64s)
   776				memcpy_u64s_small(bch2_journal_add_entry(j, &trans->journal_res,
   777								BCH_JSET_ENTRY_write_buffer_keys,
   778								BTREE_ID_accounting, 0,
   779								trans->accounting.u64s)->_data,
   780						  btree_trans_subbuf_base(trans, &trans->accounting),
   781						  trans->accounting.u64s);
   782	
   783			if (trans->journal_seq)
   784				*trans->journal_seq = trans->journal_res.seq;
   785		}
   786	
   787		trans_for_each_update(trans, i) {
   788			struct btree_path *path = trans->paths + i->path;
   789	
   790			if (!i->cached)
   791				bch2_btree_insert_key_leaf(trans, path, i->k, trans->journal_res.seq);
   792			else if (!i->key_cache_already_flushed)
   793				bch2_btree_insert_key_cached(trans, flags, i);
   794			else
   795				bch2_btree_key_cache_drop(trans, path);
   796		}
   797	
   798		return 0;
   799	}
   800	

-- 
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-03  0:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-03  0:31 [bcachefs:bcachefs-testing 614/741] fs/bcachefs/btree/commit.c:717:4: error: implicit declaration of function '__WARN'; did you mean 'WARN'? kernel test robot

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.