public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: David Howells <dhowells@redhat.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [dhowells-fs:netfs-writeback 10/12] fs/netfs/objects.c:25:36: error: incomplete definition of type 'struct mempool_s'
Date: Sat, 16 Mar 2024 14:35:19 +0800	[thread overview]
Message-ID: <202403161454.UrFEsP1k-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git netfs-writeback
head:   be938ad004e7a8f28cc6fc8500c120c7687339f7
commit: 0361c7613ba8192cccf99a39007a8ce54ed1f562 [10/12] netfs: Use mempools for allocating requests and subrequests
config: riscv-defconfig (https://download.01.org/0day-ci/archive/20240316/202403161454.UrFEsP1k-lkp@intel.com/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 8f68022f8e6e54d1aeae4ed301f5a015963089b7)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240316/202403161454.UrFEsP1k-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/202403161454.UrFEsP1k-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from fs/netfs/objects.c:10:
   In file included from fs/netfs/internal.h:10:
   In file included from include/linux/netfs.h:19:
   In file included from include/linux/pagemap.h:8:
   In file included from include/linux/mm.h:2194:
   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_"
         |                               ~~~~~~~~~~~ ^ ~~~
>> fs/netfs/objects.c:25:36: error: incomplete definition of type 'struct mempool_s'
      25 |         struct kmem_cache *cache = mempool->pool_data;
         |                                    ~~~~~~~^
   include/linux/netfs.h:23:16: note: forward declaration of 'struct mempool_s'
      23 | typedef struct mempool_s mempool_t;
         |                ^
   fs/netfs/objects.c:33:10: error: call to undeclared function 'mempool_alloc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
      33 |                 rreq = mempool_alloc(mempool, GFP_KERNEL);
         |                        ^
   fs/netfs/objects.c:33:8: error: incompatible integer to pointer conversion assigning to 'struct netfs_io_request *' from 'int' [-Wint-conversion]
      33 |                 rreq = mempool_alloc(mempool, GFP_KERNEL);
         |                      ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/netfs/objects.c:61:4: error: call to undeclared function 'mempool_free'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
      61 |                         mempool_free(rreq, rreq->netfs_ops->request_pool ?: &netfs_request_pool);
         |                         ^
   fs/netfs/objects.c:97:2: error: call to undeclared function 'mempool_free'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
      97 |         mempool_free(rreq, rreq->netfs_ops->request_pool ?: &netfs_request_pool);
         |         ^
   fs/netfs/objects.c:156:36: error: incomplete definition of type 'struct mempool_s'
     156 |         struct kmem_cache *cache = mempool->pool_data;
         |                                    ~~~~~~~^
   include/linux/netfs.h:23:16: note: forward declaration of 'struct mempool_s'
      23 | typedef struct mempool_s mempool_t;
         |                ^
   fs/netfs/objects.c:159:12: error: call to undeclared function 'mempool_alloc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     159 |                 subreq = mempool_alloc(rreq->netfs_ops->subrequest_pool ?: &netfs_subrequest_pool,
         |                          ^
   fs/netfs/objects.c:159:10: error: incompatible integer to pointer conversion assigning to 'struct netfs_io_subrequest *' from 'int' [-Wint-conversion]
     159 |                 subreq = mempool_alloc(rreq->netfs_ops->subrequest_pool ?: &netfs_subrequest_pool,
         |                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     160 |                                        GFP_KERNEL);
         |                                        ~~~~~~~~~~~
   fs/netfs/objects.c:194:2: error: call to undeclared function 'mempool_free'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     194 |         mempool_free(subreq, rreq->netfs_ops->subrequest_pool ?: &netfs_subrequest_pool);
         |         ^
   1 warning and 9 errors generated.


vim +25 fs/netfs/objects.c

  > 10	#include "internal.h"
    11	
    12	/*
    13	 * Allocate an I/O request and initialise it.
    14	 */
    15	struct netfs_io_request *netfs_alloc_request(struct address_space *mapping,
    16						     struct file *file,
    17						     loff_t start, size_t len,
    18						     enum netfs_io_origin origin)
    19	{
    20		static atomic_t debug_ids;
    21		struct inode *inode = file ? file_inode(file) : mapping->host;
    22		struct netfs_inode *ctx = netfs_inode(inode);
    23		struct netfs_io_request *rreq;
    24		mempool_t *mempool = ctx->ops->request_pool ?: &netfs_request_pool;
  > 25		struct kmem_cache *cache = mempool->pool_data;
    26		bool is_unbuffered = (origin == NETFS_UNBUFFERED_WRITE ||
    27				      origin == NETFS_DIO_READ ||
    28				      origin == NETFS_DIO_WRITE);
    29		bool cached = !is_unbuffered && netfs_is_cache_enabled(ctx);
    30		int ret;
    31	
    32		for (;;) {
    33			rreq = mempool_alloc(mempool, GFP_KERNEL);
    34			if (rreq)
    35				break;
    36			msleep(10);
    37		}
    38	
    39		memset(rreq, 0, kmem_cache_size(cache));
    40		rreq->start	= start;
    41		rreq->len	= len;
    42		rreq->upper_len	= len;
    43		rreq->origin	= origin;
    44		rreq->netfs_ops	= ctx->ops;
    45		rreq->mapping	= mapping;
    46		rreq->inode	= inode;
    47		rreq->i_size	= i_size_read(inode);
    48		rreq->debug_id	= atomic_inc_return(&debug_ids);
    49		INIT_LIST_HEAD(&rreq->subrequests);
    50		INIT_WORK(&rreq->work, NULL);
    51		refcount_set(&rreq->ref, 1);
    52	
    53		__set_bit(NETFS_RREQ_IN_PROGRESS, &rreq->flags);
    54		if (cached)
    55			__set_bit(NETFS_RREQ_WRITE_TO_CACHE, &rreq->flags);
    56		if (file && file->f_flags & O_NONBLOCK)
    57			__set_bit(NETFS_RREQ_NONBLOCK, &rreq->flags);
    58		if (rreq->netfs_ops->init_request) {
    59			ret = rreq->netfs_ops->init_request(rreq, file);
    60			if (ret < 0) {
    61				mempool_free(rreq, rreq->netfs_ops->request_pool ?: &netfs_request_pool);
    62				return ERR_PTR(ret);
    63			}
    64		}
    65	
    66		trace_netfs_rreq_ref(rreq->debug_id, 1, netfs_rreq_trace_new);
    67		netfs_proc_add_rreq(rreq);
    68		netfs_stat(&netfs_n_rh_rreq);
    69		return rreq;
    70	}
    71	

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

                 reply	other threads:[~2024-03-16  6:35 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202403161454.UrFEsP1k-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=dhowells@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox