[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202203112013.vCBiSp7D-lkp@intel.com>
Date: Fri, 11 Mar 2022 21:01:27 +0800
From: kernel test robot <lkp@...el.com>
To: David Howells <dhowells@...hat.com>
Cc: llvm@...ts.linux.dev, kbuild-all@...ts.01.org,
GNU/Weeb Mailing List <gwml@...r.gnuweeb.org>,
linux-kernel@...r.kernel.org
Subject: [ammarfaizi2-block:dhowells/linux-fs/netfs-lib 42/54]
fs/netfs/objects.c:49:2: error: implicit declaration of function
'netfs_proc_add_writeback'
tree: https://github.com/ammarfaizi2/linux-block dhowells/linux-fs/netfs-lib
head: 4a98a2518c638d046f6f9c41060f78c349c4c6de
commit: 6903280c13bfacd00ddd06fda523ecce6ee8db34 [42/54] netfs: Add a procfile to list in-progress requests
config: riscv-randconfig-r042-20220310 (https://download.01.org/0day-ci/archive/20220311/202203112013.vCBiSp7D-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 276ca87382b8f16a65bddac700202924228982f6)
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
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://github.com/ammarfaizi2/linux-block/commit/6903280c13bfacd00ddd06fda523ecce6ee8db34
git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
git fetch --no-tags ammarfaizi2-block dhowells/linux-fs/netfs-lib
git checkout 6903280c13bfacd00ddd06fda523ecce6ee8db34
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>
All errors (new ones prefixed by >>):
>> fs/netfs/objects.c:49:2: error: implicit declaration of function 'netfs_proc_add_writeback' [-Werror,-Wimplicit-function-declaration]
netfs_proc_add_writeback(rreq);
^
fs/netfs/objects.c:49:2: note: did you mean 'netfs_proc_add_rreq'?
fs/netfs/internal.h:51:20: note: 'netfs_proc_add_rreq' declared here
static inline void netfs_proc_add_rreq(struct netfs_io_request *rreq) {}
^
>> fs/netfs/objects.c:81:2: error: implicit declaration of function 'netfs_proc_del_writeback' [-Werror,-Wimplicit-function-declaration]
netfs_proc_del_writeback(rreq);
^
fs/netfs/objects.c:81:2: note: did you mean 'netfs_proc_del_rreq'?
fs/netfs/internal.h:52:20: note: 'netfs_proc_del_rreq' declared here
static inline void netfs_proc_del_rreq(struct netfs_io_request *rreq) {}
^
2 errors generated.
vim +/netfs_proc_add_writeback +49 fs/netfs/objects.c
10
11 /*
12 * Allocate an I/O request and initialise it.
13 */
14 struct netfs_io_request *netfs_alloc_request(struct address_space *mapping,
15 struct file *file,
16 loff_t start, size_t len,
17 enum netfs_io_origin origin)
18 {
19 static atomic_t debug_ids;
20 struct inode *inode = file ? file_inode(file) : mapping->host;
21 struct netfs_i_context *ctx = netfs_i_context(inode);
22 struct netfs_io_request *rreq;
23 int ret;
24
25 rreq = kzalloc(sizeof(struct netfs_io_request), GFP_KERNEL);
26 if (!rreq)
27 return ERR_PTR(-ENOMEM);
28
29 rreq->start = start;
30 rreq->len = len;
31 rreq->origin = origin;
32 rreq->netfs_ops = ctx->ops;
33 rreq->mapping = mapping;
34 rreq->inode = inode;
35 rreq->i_size = i_size_read(inode);
36 rreq->debug_id = atomic_inc_return(&debug_ids);
37 INIT_LIST_HEAD(&rreq->subrequests);
38 INIT_WORK(&rreq->work, NULL);
39 refcount_set(&rreq->ref, 1);
40 __set_bit(NETFS_RREQ_IN_PROGRESS, &rreq->flags);
41 if (rreq->netfs_ops->init_request) {
42 ret = rreq->netfs_ops->init_request(rreq, file);
43 if (ret < 0) {
44 kfree(rreq);
45 return ERR_PTR(ret);
46 }
47 }
48
> 49 netfs_proc_add_writeback(rreq);
50 netfs_stat(&netfs_n_rh_rreq);
51 return rreq;
52 }
53
54 void netfs_get_request(struct netfs_io_request *rreq, enum netfs_rreq_ref_trace what)
55 {
56 int r;
57
58 __refcount_inc(&rreq->ref, &r);
59 trace_netfs_rreq_ref(rreq->debug_id, r + 1, what);
60 }
61
62 void netfs_clear_subrequests(struct netfs_io_request *rreq, bool was_async)
63 {
64 struct netfs_io_subrequest *subreq;
65
66 while (!list_empty(&rreq->subrequests)) {
67 subreq = list_first_entry(&rreq->subrequests,
68 struct netfs_io_subrequest, rreq_link);
69 list_del(&subreq->rreq_link);
70 netfs_put_subrequest(subreq, was_async,
71 netfs_sreq_trace_put_clear);
72 }
73 }
74
75 static void netfs_free_request(struct work_struct *work)
76 {
77 struct netfs_io_request *rreq =
78 container_of(work, struct netfs_io_request, work);
79
80 trace_netfs_rreq(rreq, netfs_rreq_trace_free);
> 81 netfs_proc_del_writeback(rreq);
82 netfs_clear_subrequests(rreq, false);
83 if (rreq->netfs_ops->free_request)
84 rreq->netfs_ops->free_request(rreq);
85 if (rreq->cache_resources.ops)
86 rreq->cache_resources.ops->end_operation(&rreq->cache_resources);
87 kfree_rcu(rreq, rcu);
88 netfs_stat_d(&netfs_n_rh_rreq);
89 }
90
---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Powered by blists - more mailing lists