All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
Cc: oe-kbuild-all@lists.linux.dev, llvm@lists.linux.dev
Subject: fs/bcachefs/quota.c:130:15: warning: arithmetic between different enumeration types ('enum quota_types' and 'enum quota_counters')
Date: Sun, 2 Mar 2025 23:42:48 +0800	[thread overview]
Message-ID: <202503022349.eydi1bf1-lkp@intel.com> (raw)

CC: linux-kernel@vger.kernel.org
TO: Kent Overstreet <kent.overstreet@linux.dev>

Hi Kent,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   1973160c90d7886c523e52e1f56164e6a74f0474
commit: 1c6fdbd8f2465ddfb73a01ec620cbf3d14044e1a bcachefs: Initial commit
date:   1 year, 4 months ago
config: x86_64-buildonly-randconfig-004-20241224 (https://download.01.org/0day-ci/archive/20250302/202503022349.eydi1bf1-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250302/202503022349.eydi1bf1-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/202503022349.eydi1bf1-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from fs/bcachefs/quota.c:2:
   In file included from fs/bcachefs/bcachefs.h:184:
   In file included from include/linux/bio.h:10:
   In file included from include/linux/blk_types.h:10:
   In file included from include/linux/bvec.h:10:
   In file included from include/linux/highmem.h:8:
   In file included from include/linux/cacheflush.h:5:
   In file included from arch/x86/include/asm/cacheflush.h:5:
   In file included from include/linux/mm.h:2168:
   include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     508 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     509 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     515 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     516 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     522 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     527 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     528 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   fs/bcachefs/quota.c:25:24: warning: variable 'dq' set but not used [-Wunused-but-set-variable]
      25 |         struct bkey_s_c_quota dq;
         |                               ^
>> fs/bcachefs/quota.c:130:15: warning: arithmetic between different enumeration types ('enum quota_types' and 'enum quota_counters') [-Wenum-enum-conversion]
     130 |         }               m[QTYP_NR * Q_COUNTERS];
         |                           ~~~~~~~ ^ ~~~~~~~~~~
   fs/bcachefs/quota.c:612:28: warning: variable 'q' set but not used [-Wunused-but-set-variable]
     612 |         struct bch_memquota_type *q;
         |                                   ^
   7 warnings generated.


vim +130 fs/bcachefs/quota.c

    22	
    23	const char *bch2_quota_invalid(const struct bch_fs *c, struct bkey_s_c k)
    24	{
  > 25		struct bkey_s_c_quota dq;
    26	
    27		if (k.k->p.inode >= QTYP_NR)
    28			return "invalid quota type";
    29	
    30		switch (k.k->type) {
    31		case BCH_QUOTA: {
    32			dq = bkey_s_c_to_quota(k);
    33	
    34			if (bkey_val_bytes(k.k) != sizeof(struct bch_quota))
    35				return "incorrect value size";
    36	
    37			return NULL;
    38		}
    39		default:
    40			return "invalid type";
    41		}
    42	}
    43	
    44	static const char * const bch2_quota_counters[] = {
    45		"space",
    46		"inodes",
    47	};
    48	
    49	void bch2_quota_to_text(struct bch_fs *c, char *buf,
    50				size_t size, struct bkey_s_c k)
    51	{
    52		char *out = buf, *end= buf + size;
    53		struct bkey_s_c_quota dq;
    54		unsigned i;
    55	
    56		switch (k.k->type) {
    57		case BCH_QUOTA:
    58			dq = bkey_s_c_to_quota(k);
    59	
    60			for (i = 0; i < Q_COUNTERS; i++)
    61				out += scnprintf(out, end - out, "%s hardlimit %llu softlimit %llu",
    62						 bch2_quota_counters[i],
    63						 le64_to_cpu(dq.v->c[i].hardlimit),
    64						 le64_to_cpu(dq.v->c[i].softlimit));
    65			break;
    66		}
    67	}
    68	
    69	#ifdef CONFIG_BCACHEFS_QUOTA
    70	
    71	#include <linux/cred.h>
    72	#include <linux/fs.h>
    73	#include <linux/quota.h>
    74	
    75	static inline unsigned __next_qtype(unsigned i, unsigned qtypes)
    76	{
    77		qtypes >>= i;
    78		return qtypes ? i + __ffs(qtypes) : QTYP_NR;
    79	}
    80	
    81	#define for_each_set_qtype(_c, _i, _q, _qtypes)				\
    82		for (_i = 0;							\
    83		     (_i = __next_qtype(_i, _qtypes),				\
    84		      _q = &(_c)->quotas[_i],					\
    85		      _i < QTYP_NR);						\
    86		     _i++)
    87	
    88	static bool ignore_hardlimit(struct bch_memquota_type *q)
    89	{
    90		if (capable(CAP_SYS_RESOURCE))
    91			return true;
    92	#if 0
    93		struct mem_dqinfo *info = &sb_dqopt(dquot->dq_sb)->info[dquot->dq_id.type];
    94	
    95		return capable(CAP_SYS_RESOURCE) &&
    96		       (info->dqi_format->qf_fmt_id != QFMT_VFS_OLD ||
    97			!(info->dqi_flags & DQF_ROOT_SQUASH));
    98	#endif
    99		return false;
   100	}
   101	
   102	enum quota_msg {
   103		SOFTWARN,	/* Softlimit reached */
   104		SOFTLONGWARN,	/* Grace time expired */
   105		HARDWARN,	/* Hardlimit reached */
   106	
   107		HARDBELOW,	/* Usage got below inode hardlimit */
   108		SOFTBELOW,	/* Usage got below inode softlimit */
   109	};
   110	
   111	static int quota_nl[][Q_COUNTERS] = {
   112		[HARDWARN][Q_SPC]	= QUOTA_NL_BHARDWARN,
   113		[SOFTLONGWARN][Q_SPC]	= QUOTA_NL_BSOFTLONGWARN,
   114		[SOFTWARN][Q_SPC]	= QUOTA_NL_BSOFTWARN,
   115		[HARDBELOW][Q_SPC]	= QUOTA_NL_BHARDBELOW,
   116		[SOFTBELOW][Q_SPC]	= QUOTA_NL_BSOFTBELOW,
   117	
   118		[HARDWARN][Q_INO]	= QUOTA_NL_IHARDWARN,
   119		[SOFTLONGWARN][Q_INO]	= QUOTA_NL_ISOFTLONGWARN,
   120		[SOFTWARN][Q_INO]	= QUOTA_NL_ISOFTWARN,
   121		[HARDBELOW][Q_INO]	= QUOTA_NL_IHARDBELOW,
   122		[SOFTBELOW][Q_INO]	= QUOTA_NL_ISOFTBELOW,
   123	};
   124	
   125	struct quota_msgs {
   126		u8		nr;
   127		struct {
   128			u8	qtype;
   129			u8	msg;
 > 130		}		m[QTYP_NR * Q_COUNTERS];
   131	};
   132	

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

             reply	other threads:[~2025-03-02 15:43 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-02 15:42 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-03-01  0:35 fs/bcachefs/quota.c:130:15: warning: arithmetic between different enumeration types ('enum quota_types' and 'enum quota_counters') 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=202503022349.eydi1bf1-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=llvm@lists.linux.dev \
    --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.