[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202108280928.YeTsPHMu-lkp@intel.com>
Date: Sat, 28 Aug 2021 09:49:35 +0800
From: kernel test robot <lkp@...el.com>
To: David Howells <dhowells@...hat.com>
Cc: kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: [dhowells-fs:fscache-iter-2 57/74] fs/fscache/io.c:235: warning:
expecting prototype for fscache_clear_page_bits(). Prototype was for
__fscache_clear_page_bits() instead
Hi David,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git fscache-iter-2
head: 28d7bc7b5030ef7829d8e21696522adbf0ae90e4
commit: e29afe6f941d92e05bfaf15c9fcb4fbc4760244f [57/74] fscache: Add support for writing to the cache
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-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://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit/?id=e29afe6f941d92e05bfaf15c9fcb4fbc4760244f
git remote add dhowells-fs https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
git fetch --no-tags dhowells-fs fscache-iter-2
git checkout e29afe6f941d92e05bfaf15c9fcb4fbc4760244f
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=m68k SHELL=/bin/bash fs/fscache/ fs/nfs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>
All warnings (new ones prefixed by >>):
fs/fscache/io.c:25: warning: Function parameter or member 'cres' not described in 'fscache_wait_for_operation'
fs/fscache/io.c:25: warning: Excess function parameter 'cookie' description in 'fscache_wait_for_operation'
>> fs/fscache/io.c:235: warning: expecting prototype for fscache_clear_page_bits(). Prototype was for __fscache_clear_page_bits() instead
>> fs/fscache/io.c:296: warning: expecting prototype for fscache_write_to_cache(). Prototype was for __fscache_write_to_cache() instead
vim +235 fs/fscache/io.c
223
224 /**
225 * fscache_clear_page_bits - Clear the PG_fscache bits from a set of pages
226 * @mapping: The netfs inode to use as the source
227 * @start: The start position in @mapping
228 * @len: The amount of data to unlock
229 *
230 * Clear the PG_fscache flag from a sequence of pages and wake up anyone who's
231 * waiting.
232 */
233 void __fscache_clear_page_bits(struct address_space *mapping,
234 loff_t start, size_t len)
> 235 {
236 pgoff_t first = start / PAGE_SIZE;
237 pgoff_t last = (start + len - 1) / PAGE_SIZE;
238 struct page *page;
239
240 if (len) {
241 XA_STATE(xas, &mapping->i_pages, first);
242
243 rcu_read_lock();
244 xas_for_each(&xas, page, last) {
245 end_page_fscache(page);
246 }
247 rcu_read_unlock();
248 }
249 }
250 EXPORT_SYMBOL(__fscache_clear_page_bits);
251
252 /*
253 * Deal with the completion of writing the data to the cache.
254 */
255 static void fscache_wreq_done(void *priv, ssize_t transferred_or_error,
256 bool was_async)
257 {
258 struct fscache_write_request *wreq = priv;
259
260 fscache_clear_page_bits(wreq->mapping, wreq->start, wreq->len);
261
262 if (wreq->term_func)
263 wreq->term_func(wreq->term_func_priv, transferred_or_error,
264 was_async);
265 fscache_end_operation(&wreq->cache_resources);
266 kfree(wreq);
267 }
268
269 /**
270 * fscache_write_to_cache - Save a write to the cache and clear PG_fscache
271 * @cookie: The cookie representing the cache object
272 * @mapping: The netfs inode to use as the source
273 * @start: The start position in @mapping
274 * @len: The amount of data to write back
275 * @i_size: The new size of the inode
276 * @term_func: The function to call upon completion
277 * @term_func_priv: The private data for @term_func
278 *
279 * Helper function for a netfs to write dirty data from an inode into the cache
280 * object that's backing it.
281 *
282 * @start and @len describe the range of the data. This does not need to be
283 * page-aligned, but to satisfy DIO requirements, the cache may expand it up to
284 * the page boundaries on either end. All the pages covering the range must be
285 * marked with PG_fscache.
286 *
287 * If given, @term_func will be called upon completion and supplied with
288 * @term_func_priv. Note that the PG_fscache flags will have been cleared by
289 * this point, so the netfs must retain its own pin on the mapping.
290 */
291 void __fscache_write_to_cache(struct fscache_cookie *cookie,
292 struct address_space *mapping,
293 loff_t start, size_t len, loff_t i_size,
294 netfs_io_terminated_t term_func,
295 void *term_func_priv)
> 296 {
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Download attachment ".config.gz" of type "application/gzip" (60645 bytes)
Powered by blists - more mailing lists