* [rhvgoyal:virtiofs-dax-5.6 17/26] fs/fuse/file.c:3044:21: sparse: sparse: incorrect type in assignment (different base types)
@ 2020-02-14 20:58 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-02-14 20:58 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 3769 bytes --]
tree: https://github.com/rhvgoyal/linux virtiofs-dax-5.6
head: b38ced151aa1f5152141e7f9e254ffa85e774dcd
commit: 94ac6ca060984a6baf3d9c3b847923a57aa7dcc8 [17/26] fuse: Add logic to free up a memory range
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-166-g7e4a5b6f-dirty
git checkout 94ac6ca060984a6baf3d9c3b847923a57aa7dcc8
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> fs/fuse/file.c:3044:21: sparse: sparse: incorrect type in assignment (different base types)
fs/fuse/file.c:3044:21: sparse: expected restricted vm_fault_t [usertype] ret
fs/fuse/file.c:3044:21: sparse: got int
fs/fuse/file.c:3074:16: sparse: sparse: incorrect type in return expression (different base types)
fs/fuse/file.c:3074:16: sparse: expected int
fs/fuse/file.c:3074:16: sparse: got restricted vm_fault_t [assigned] [usertype] ret
fs/fuse/file.c:3079:32: sparse: sparse: incorrect type in return expression (different base types)
fs/fuse/file.c:3079:32: sparse: expected restricted vm_fault_t
fs/fuse/file.c:3079:32: sparse: got int
fs/fuse/file.c:3086:32: sparse: sparse: incorrect type in return expression (different base types)
fs/fuse/file.c:3086:32: sparse: expected restricted vm_fault_t
fs/fuse/file.c:3086:32: sparse: got int
fs/fuse/file.c:3091:32: sparse: sparse: incorrect type in return expression (different base types)
fs/fuse/file.c:3091:32: sparse: expected restricted vm_fault_t
fs/fuse/file.c:3091:32: sparse: got int
fs/fuse/file.c:3096:32: sparse: sparse: incorrect type in return expression (different base types)
fs/fuse/file.c:3096:32: sparse: expected restricted vm_fault_t
fs/fuse/file.c:3096:32: sparse: got int
vim +3044 fs/fuse/file.c
3027
3028 static int __fuse_dax_fault(struct vm_fault *vmf, enum page_entry_size pe_size,
3029 bool write)
3030 {
3031 vm_fault_t ret;
3032 struct inode *inode = file_inode(vmf->vma->vm_file);
3033 struct super_block *sb = inode->i_sb;
3034 pfn_t pfn;
3035 int error = 0;
3036 struct fuse_conn *fc = get_fuse_conn(inode);
3037 bool retry = false;
3038
3039 if (write)
3040 sb_start_pagefault(sb);
3041
3042 retry:
3043 if (retry && !(fc->nr_free_ranges > 0)) {
> 3044 ret = -EINTR;
3045 if (wait_event_killable_exclusive(fc->dax_range_waitq,
3046 (fc->nr_free_ranges > 0)))
3047 goto out;
3048 }
3049
3050 /*
3051 * We need to serialize against not only truncate but also against
3052 * fuse dax memory range reclaim. While a range is being reclaimed,
3053 * we do not want any read/write/mmap to make progress and try
3054 * to populate page cache or access memory we are trying to free.
3055 */
3056 down_read(&get_fuse_inode(inode)->i_mmap_sem);
3057 ret = dax_iomap_fault(vmf, pe_size, &pfn, &error, &fuse_iomap_ops);
3058 if ((ret & VM_FAULT_ERROR) && error == -ENOSPC) {
3059 error = 0;
3060 retry = true;
3061 up_read(&get_fuse_inode(inode)->i_mmap_sem);
3062 goto retry;
3063 }
3064
3065 if (ret & VM_FAULT_NEEDDSYNC)
3066 ret = dax_finish_sync_fault(vmf, pe_size, pfn);
3067
3068 up_read(&get_fuse_inode(inode)->i_mmap_sem);
3069
3070 out:
3071 if (write)
3072 sb_end_pagefault(sb);
3073
3074 return ret;
3075 }
3076
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-02-14 20:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-14 20:58 [rhvgoyal:virtiofs-dax-5.6 17/26] fs/fuse/file.c:3044:21: sparse: sparse: incorrect type in assignment (different base types) kbuild test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.