Re: [PATCH] btrfs: turn btrfs_destroy_all_ordered_extents() into void functions

From: kernel test robot
Date: Wed Sep 29 2021 - 09:17:59 EST


Hi Yang,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on kdave/for-next]
[also build test ERROR on v5.15-rc3 next-20210921]
[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]

url: https://github.com/0day-ci/linux/commits/Yang-Li/btrfs-turn-btrfs_destroy_all_ordered_extents-into-void-functions/20210929-133924
base: https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
config: arc-randconfig-r043-20210929 (attached as .config)
compiler: arceb-elf-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/c6f80dfd41a91ba3a38e031d0611b91bd1618085
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Yang-Li/btrfs-turn-btrfs_destroy_all_ordered_extents-into-void-functions/20210929-133924
git checkout c6f80dfd41a91ba3a38e031d0611b91bd1618085
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arc

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

>> fs/btrfs/disk-io.c:4635:13: error: conflicting types for 'btrfs_destroy_delayed_refs'; have 'void(struct btrfs_transaction *, struct btrfs_fs_info *)'
4635 | static void btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
fs/btrfs/disk-io.c:56:12: note: previous declaration of 'btrfs_destroy_delayed_refs' with type 'int(struct btrfs_transaction *, struct btrfs_fs_info *)'
56 | static int btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~


vim +4635 fs/btrfs/disk-io.c

4634
> 4635 static void btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
4636 struct btrfs_fs_info *fs_info)
4637 {
4638 struct rb_node *node;
4639 struct btrfs_delayed_ref_root *delayed_refs;
4640 struct btrfs_delayed_ref_node *ref;
4641
4642 delayed_refs = &trans->delayed_refs;
4643
4644 spin_lock(&delayed_refs->lock);
4645 if (atomic_read(&delayed_refs->num_entries) == 0) {
4646 spin_unlock(&delayed_refs->lock);
4647 btrfs_debug(fs_info, "delayed_refs has NO entry");
4648 return;
4649 }
4650
4651 while ((node = rb_first_cached(&delayed_refs->href_root)) != NULL) {
4652 struct btrfs_delayed_ref_head *head;
4653 struct rb_node *n;
4654 bool pin_bytes = false;
4655
4656 head = rb_entry(node, struct btrfs_delayed_ref_head,
4657 href_node);
4658 if (btrfs_delayed_ref_lock(delayed_refs, head))
4659 continue;
4660
4661 spin_lock(&head->lock);
4662 while ((n = rb_first_cached(&head->ref_tree)) != NULL) {
4663 ref = rb_entry(n, struct btrfs_delayed_ref_node,
4664 ref_node);
4665 ref->in_tree = 0;
4666 rb_erase_cached(&ref->ref_node, &head->ref_tree);
4667 RB_CLEAR_NODE(&ref->ref_node);
4668 if (!list_empty(&ref->add_list))
4669 list_del(&ref->add_list);
4670 atomic_dec(&delayed_refs->num_entries);
4671 btrfs_put_delayed_ref(ref);
4672 }
4673 if (head->must_insert_reserved)
4674 pin_bytes = true;
4675 btrfs_free_delayed_extent_op(head->extent_op);
4676 btrfs_delete_ref_head(delayed_refs, head);
4677 spin_unlock(&head->lock);
4678 spin_unlock(&delayed_refs->lock);
4679 mutex_unlock(&head->mutex);
4680
4681 if (pin_bytes) {
4682 struct btrfs_block_group *cache;
4683
4684 cache = btrfs_lookup_block_group(fs_info, head->bytenr);
4685 BUG_ON(!cache);
4686
4687 spin_lock(&cache->space_info->lock);
4688 spin_lock(&cache->lock);
4689 cache->pinned += head->num_bytes;
4690 btrfs_space_info_update_bytes_pinned(fs_info,
4691 cache->space_info, head->num_bytes);
4692 cache->reserved -= head->num_bytes;
4693 cache->space_info->bytes_reserved -= head->num_bytes;
4694 spin_unlock(&cache->lock);
4695 spin_unlock(&cache->space_info->lock);
4696
4697 btrfs_put_block_group(cache);
4698
4699 btrfs_error_unpin_extent_range(fs_info, head->bytenr,
4700 head->bytenr + head->num_bytes - 1);
4701 }
4702 btrfs_cleanup_ref_head_accounting(fs_info, delayed_refs, head);
4703 btrfs_put_delayed_ref_head(head);
4704 cond_resched();
4705 spin_lock(&delayed_refs->lock);
4706 }
4707 btrfs_qgroup_destroy_extent_records(trans);
4708
4709 spin_unlock(&delayed_refs->lock);
4710
4711 return;
4712 }
4713

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip