[dhowells-fs:fscache-iter-2 73/74] fs/nfs/fscache.c:243:5: warning: no previous prototype for function 'nfs_fscache_release_page'

From: kernel test robot
Date: Sat Aug 28 2021 - 14:04:12 EST


Hi David,

First bad commit (maybe != root cause):

tree: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git fscache-iter-2
head: 28d7bc7b5030ef7829d8e21696522adbf0ae90e4
commit: 0938c7d6a359a6c7a72ce7758d921195be52ec7b [73/74] nfs: Convert to new fscache volume/cookie API
config: powerpc-randconfig-r034-20210827 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 4e1a164d7bd53653f79decc121afe784d2fde0a7)
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 powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc64le-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit/?id=0938c7d6a359a6c7a72ce7758d921195be52ec7b
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 0938c7d6a359a6c7a72ce7758d921195be52ec7b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc

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

All warnings (new ones prefixed by >>):

>> fs/nfs/fscache.c:243:5: warning: no previous prototype for function 'nfs_fscache_release_page' [-Wmissing-prototypes]
int nfs_fscache_release_page(struct page *page, gfp_t gfp)
^
fs/nfs/fscache.c:243:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int nfs_fscache_release_page(struct page *page, gfp_t gfp)
^
static
fs/nfs/fscache.c:266:6: warning: no previous prototype for function '__nfs_fscache_invalidate_page' [-Wmissing-prototypes]
void __nfs_fscache_invalidate_page(struct page *page, struct inode *inode)
^
fs/nfs/fscache.c:266:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __nfs_fscache_invalidate_page(struct page *page, struct inode *inode)
^
static
fs/nfs/fscache.c:322:8: error: implicit declaration of function 'fscache_read_or_alloc_page' [-Werror,-Wimplicit-function-declaration]
ret = fscache_read_or_alloc_page(nfs_i_fscache(inode),
^
fs/nfs/fscache.c:364:8: error: implicit declaration of function 'fscache_read_or_alloc_pages' [-Werror,-Wimplicit-function-declaration]
ret = fscache_read_or_alloc_pages(nfs_i_fscache(inode),
^
fs/nfs/fscache.c:411:8: error: implicit declaration of function 'fscache_write_page' [-Werror,-Wimplicit-function-declaration]
ret = fscache_write_page(nfs_i_fscache(inode), page,
^
fs/nfs/fscache.c:411:8: note: did you mean 'fscache_write'?
include/linux/fscache.h:534:5: note: 'fscache_write' declared here
int fscache_write(struct netfs_cache_resources *cres,
^
fs/nfs/fscache.c:418:3: error: implicit declaration of function 'fscache_uncache_page' [-Werror,-Wimplicit-function-declaration]
fscache_uncache_page(nfs_i_fscache(inode), page);
^
fs/nfs/fscache.c:418:3: note: did you mean 'fscache_write_page'?
fs/nfs/fscache.c:411:8: note: 'fscache_write_page' declared here
ret = fscache_write_page(nfs_i_fscache(inode), page,
^
2 warnings and 4 errors generated.


vim +/nfs_fscache_release_page +243 fs/nfs/fscache.c

545db45f0fc0d4 David Howells 2009-04-03 237
545db45f0fc0d4 David Howells 2009-04-03 238 /*
545db45f0fc0d4 David Howells 2009-04-03 239 * Release the caching state associated with a page, if the page isn't busy
545db45f0fc0d4 David Howells 2009-04-03 240 * interacting with the cache.
545db45f0fc0d4 David Howells 2009-04-03 241 * - Returns true (can release page) or false (page busy).
545db45f0fc0d4 David Howells 2009-04-03 242 */
545db45f0fc0d4 David Howells 2009-04-03 @243 int nfs_fscache_release_page(struct page *page, gfp_t gfp)
545db45f0fc0d4 David Howells 2009-04-03 244 {
2c1740098c708b Trond Myklebust 2010-02-08 245 if (PageFsCache(page)) {
f1fe29b4a02d08 David Howells 2013-09-27 246 struct fscache_cookie *cookie = nfs_i_fscache(page->mapping->host);
545db45f0fc0d4 David Howells 2009-04-03 247
545db45f0fc0d4 David Howells 2009-04-03 248 dfprintk(FSCACHE, "NFS: fscache releasepage (0x%p/0x%p/0x%p)\n",
f1fe29b4a02d08 David Howells 2013-09-27 249 cookie, page, NFS_I(page->mapping->host));
545db45f0fc0d4 David Howells 2009-04-03 250
0938c7d6a359a6 David Howells 2021-08-27 251 if (!(gfp & __GFP_DIRECT_RECLAIM) || !(gfp & __GFP_FS))
0938c7d6a359a6 David Howells 2021-08-27 252 return false;
0938c7d6a359a6 David Howells 2021-08-27 253 wait_on_page_fscache(page);
0938c7d6a359a6 David Howells 2021-08-27 254 fscache_note_page_release(cookie);
e9f456ca50e579 Li RongQing 2014-11-23 255 nfs_inc_fscache_stats(page->mapping->host,
e9f456ca50e579 Li RongQing 2014-11-23 256 NFSIOS_FSCACHE_PAGES_UNCACHED);
545db45f0fc0d4 David Howells 2009-04-03 257 }
545db45f0fc0d4 David Howells 2009-04-03 258
0938c7d6a359a6 David Howells 2021-08-27 259 return true;
545db45f0fc0d4 David Howells 2009-04-03 260 }
545db45f0fc0d4 David Howells 2009-04-03 261

:::::: The code at line 243 was first introduced by commit
:::::: 545db45f0fc0d4203b045047798ce156972a3056 NFS: FS-Cache page management

:::::: TO: David Howells <dhowells@xxxxxxxxxx>
:::::: CC: David Howells <dhowells@xxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip