All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Kent Overstreet <kmo@daterainc.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: fs/bcachefs/snapshot.c:974:17: sparse: sparse: cast from restricted __le32
Date: Tue, 5 Dec 2023 00:26:59 +0800	[thread overview]
Message-ID: <202312050023.G2CGeL05-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   33cc938e65a98f1d29d0a18403dbbee050dcad9a
commit: 8e877caaad818595ecb6754355cea2058fd9848e bcachefs: Split out snapshot.c
date:   6 weeks ago
config: mips-randconfig-r132-20231115 (https://download.01.org/0day-ci/archive/20231205/202312050023.G2CGeL05-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231205/202312050023.G2CGeL05-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/202312050023.G2CGeL05-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> fs/bcachefs/snapshot.c:974:17: sparse: sparse: cast from restricted __le32

vim +974 fs/bcachefs/snapshot.c

   916	
   917	static int bch2_snapshot_node_delete(struct btree_trans *trans, u32 id)
   918	{
   919		struct bch_fs *c = trans->c;
   920		struct btree_iter iter, p_iter = (struct btree_iter) { NULL };
   921		struct btree_iter tree_iter = (struct btree_iter) { NULL };
   922		struct bkey_s_c_snapshot s;
   923		u32 parent_id;
   924		unsigned i;
   925		int ret = 0;
   926	
   927		s = bch2_bkey_get_iter_typed(trans, &iter, BTREE_ID_snapshots, POS(0, id),
   928					     BTREE_ITER_INTENT, snapshot);
   929		ret = bkey_err(s);
   930		bch2_fs_inconsistent_on(bch2_err_matches(ret, ENOENT), c,
   931					"missing snapshot %u", id);
   932	
   933		if (ret)
   934			goto err;
   935	
   936		BUG_ON(!BCH_SNAPSHOT_DELETED(s.v));
   937		parent_id = le32_to_cpu(s.v->parent);
   938	
   939		if (parent_id) {
   940			struct bkey_i_snapshot *parent;
   941	
   942			parent = bch2_bkey_get_mut_typed(trans, &p_iter,
   943					     BTREE_ID_snapshots, POS(0, parent_id),
   944					     0, snapshot);
   945			ret = PTR_ERR_OR_ZERO(parent);
   946			if (unlikely(ret)) {
   947				bch2_fs_inconsistent_on(bch2_err_matches(ret, ENOENT), c,
   948							"missing snapshot %u", parent_id);
   949				goto err;
   950			}
   951	
   952			for (i = 0; i < 2; i++)
   953				if (le32_to_cpu(parent->v.children[i]) == id)
   954					break;
   955	
   956			if (i == 2)
   957				bch_err(c, "snapshot %u missing child pointer to %u",
   958					parent_id, id);
   959			else
   960				parent->v.children[i] = 0;
   961	
   962			if (le32_to_cpu(parent->v.children[0]) <
   963			    le32_to_cpu(parent->v.children[1]))
   964				swap(parent->v.children[0],
   965				     parent->v.children[1]);
   966		} else {
   967			/*
   968			 * We're deleting the root of a snapshot tree: update the
   969			 * snapshot_tree entry to point to the new root, or delete it if
   970			 * this is the last snapshot ID in this tree:
   971			 */
   972			struct bkey_i_snapshot_tree *s_t;
   973	
 > 974			BUG_ON(s.v->children[1]);
   975	
   976			s_t = bch2_bkey_get_mut_typed(trans, &tree_iter,
   977					BTREE_ID_snapshot_trees, POS(0, le32_to_cpu(s.v->tree)),
   978					0, snapshot_tree);
   979			ret = PTR_ERR_OR_ZERO(s_t);
   980			if (ret)
   981				goto err;
   982	
   983			if (s.v->children[0]) {
   984				s_t->v.root_snapshot = s.v->children[0];
   985			} else {
   986				s_t->k.type = KEY_TYPE_deleted;
   987				set_bkey_val_u64s(&s_t->k, 0);
   988			}
   989		}
   990	
   991		ret = bch2_btree_delete_at(trans, &iter, 0);
   992	err:
   993		bch2_trans_iter_exit(trans, &tree_iter);
   994		bch2_trans_iter_exit(trans, &p_iter);
   995		bch2_trans_iter_exit(trans, &iter);
   996		return ret;
   997	}
   998	

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

             reply	other threads:[~2023-12-04 16:27 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-04 16:26 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-12-15 22:57 fs/bcachefs/snapshot.c:974:17: sparse: sparse: cast from restricted __le32 kernel test robot

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=202312050023.G2CGeL05-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kmo@daterainc.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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 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.