tree:
https://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git
ceph-fscache-iter
head: 990c475d94a783c692358409a589b5f99806e3e3
commit: cd0bab0015754c448a60d3e376a1f692f2c61eea [2/7] ceph: conversion to new fscache
API
config: riscv-randconfig-r003-20201130 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
dfcf1acf13226be0f599a7ab6b395b66dc9545d6)
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://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git/commit/...
git remote add jlayton
https://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git
git fetch --no-tags jlayton ceph-fscache-iter
git checkout cd0bab0015754c448a60d3e376a1f692f2c61eea
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
> fs/ceph/caps.c:2390:31: error: incompatible pointer types passing
'struct inode *' to parameter of type 'struct writeback_control *'
[-Werror,-Wincompatible-pointer-types]
ceph_fscache_unpin_writeback(inode, wbc);
^~~~~
fs/ceph/cache.h:139:75: note: passing argument to parameter 'wbc' here
static inline void ceph_fscache_unpin_writeback(struct writeback_control *wbc,
^
> fs/ceph/caps.c:2390:38: error: incompatible pointer types passing
'struct writeback_control *' to parameter of type 'struct fscache_cookie
*' [-Werror,-Wincompatible-pointer-types]
ceph_fscache_unpin_writeback(inode, wbc);
^~~
fs/ceph/cache.h:140:30: note: passing argument to parameter 'cookie' here
struct fscache_cookie *cookie)
^
2 errors generated.
vim +2390 fs/ceph/caps.c
2374
2375 /*
2376 * Flush any dirty caps back to the mds. If we aren't asked to wait,
2377 * queue inode for flush but don't do so immediately, because we can
2378 * get by with fewer MDS messages if we wait for data writeback to
2379 * complete first.
2380 */
2381 int ceph_write_inode(struct inode *inode, struct writeback_control *wbc)
2382 {
2383 struct ceph_inode_info *ci = ceph_inode(inode);
2384 u64 flush_tid;
2385 int err = 0;
2386 int dirty;
2387 int wait = (wbc->sync_mode == WB_SYNC_ALL && !wbc->for_sync);
2388
2389 dout("write_inode %p wait=%d\n", inode, wait);
2390 ceph_fscache_unpin_writeback(inode, wbc);
2391 if
(wait) {
2392 dirty = try_flush_caps(inode, &flush_tid);
2393 if (dirty)
2394 err = wait_event_interruptible(ci->i_cap_wq,
2395 caps_are_flushed(inode, flush_tid));
2396 } else {
2397 struct ceph_mds_client *mdsc =
2398 ceph_sb_to_client(inode->i_sb)->mdsc;
2399
2400 spin_lock(&ci->i_ceph_lock);
2401 if (__ceph_caps_dirty(ci))
2402 __cap_delay_requeue_front(mdsc, ci);
2403 spin_unlock(&ci->i_ceph_lock);
2404 }
2405 return err;
2406 }
2407
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org