Messages in this thread | | | Date | Fri, 1 Jul 2022 13:46:14 +0800 | From | kernel test robot <> | Subject | [ammarfaizi2-block:dhowells/linux-fs/netfs-linked-list 53/56] fs/erofs/fscache.c:21:29: error: 'struct netfs_io_request' has no member named 'subrequests' |
| |
tree: https://github.com/ammarfaizi2/linux-block dhowells/linux-fs/netfs-linked-list head: acac17cdb0f9f6db9fc03eea371e399906146f96 commit: e479d37c5fc583c860ac76575696ea8f69629cc7 [53/56] netfs: Add subrequest chains to I/O requests config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20220701/202207011330.pej34H71-lkp@intel.com/config) compiler: mips-linux-gcc (GCC) 11.3.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://github.com/ammarfaizi2/linux-block/commit/e479d37c5fc583c860ac76575696ea8f69629cc7 git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block git fetch --no-tags ammarfaizi2-block dhowells/linux-fs/netfs-linked-list git checkout e479d37c5fc583c860ac76575696ea8f69629cc7 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/gfp.h:5, from include/linux/xarray.h:15, from include/linux/list_lru.h:14, from include/linux/fs.h:13, from include/linux/fscache.h:17, from fs/erofs/fscache.c:5: include/linux/page-flags.h: In function 'PageHead': include/linux/page-flags.h:788:27: warning: passing argument 1 of 'dump_page' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 788 | PF_POISONED_CHECK(page); | ^~~~ include/linux/mmdebug.h:21:35: note: in definition of macro 'VM_BUG_ON_PAGE' 21 | dump_page(page, "VM_BUG_ON_PAGE(" __stringify(cond)")");\ | ^~~~ include/linux/page-flags.h:370:17: note: in expansion of macro 'VM_BUG_ON_PGFLAGS' 370 | VM_BUG_ON_PGFLAGS(PagePoisoned(page), page); \ | ^~~~~~~~~~~~~~~~~ include/linux/page-flags.h:788:9: note: in expansion of macro 'PF_POISONED_CHECK' 788 | PF_POISONED_CHECK(page); | ^~~~~~~~~~~~~~~~~ include/linux/mmdebug.h:12:29: note: expected 'struct page *' but argument is of type 'const struct page *' 12 | void dump_page(struct page *page, const char *reason); | ~~~~~~~~~~~~~^~~~ fs/erofs/fscache.c: In function 'erofs_fscache_alloc_request': >> fs/erofs/fscache.c:21:29: error: 'struct netfs_io_request' has no member named 'subrequests' 21 | INIT_LIST_HEAD(&rreq->subrequests); | ^~ fs/erofs/fscache.c: In function 'erofs_fscache_clear_subrequests': fs/erofs/fscache.c:47:33: error: 'struct netfs_io_request' has no member named 'subrequests' 47 | while (!list_empty(&rreq->subrequests)) { | ^~ In file included from include/linux/list.h:5, from include/linux/wait.h:7, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from include/linux/fscache.h:17, from fs/erofs/fscache.c:5: fs/erofs/fscache.c:48:48: error: 'struct netfs_io_request' has no member named 'subrequests' 48 | subreq = list_first_entry(&rreq->subrequests, | ^~ include/linux/container_of.h:18:33: note: in definition of macro 'container_of' 18 | void *__mptr = (void *)(ptr); \ | ^~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:48:26: note: in expansion of macro 'list_first_entry' 48 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ In file included from include/linux/container_of.h:5, from include/linux/list.h:5, from include/linux/wait.h:7, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from include/linux/fscache.h:17, from fs/erofs/fscache.c:5: fs/erofs/fscache.c:48:48: error: 'struct netfs_io_request' has no member named 'subrequests' 48 | subreq = list_first_entry(&rreq->subrequests, | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:19:23: note: in expansion of macro '__same_type' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:48:26: note: in expansion of macro 'list_first_entry' 48 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ >> include/linux/container_of.h:19:54: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:19:23: note: in expansion of macro '__same_type' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:48:26: note: in expansion of macro 'list_first_entry' 48 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ fs/erofs/fscache.c:48:48: error: 'struct netfs_io_request' has no member named 'subrequests' 48 | subreq = list_first_entry(&rreq->subrequests, | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:20:23: note: in expansion of macro '__same_type' 20 | __same_type(*(ptr), void), \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:48:26: note: in expansion of macro 'list_first_entry' 48 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ include/linux/compiler_types.h:293:27: error: expression in static assertion is not an integer 293 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:19:23: note: in expansion of macro '__same_type' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:48:26: note: in expansion of macro 'list_first_entry' 48 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ In file included from include/uapi/linux/posix_types.h:5, from include/uapi/linux/types.h:14, from include/linux/types.h:6, from include/linux/kasan-checks.h:5, from include/asm-generic/rwonce.h:26, from ./arch/mips/include/generated/asm/rwonce.h:1, from include/linux/compiler.h:248, from include/linux/build_bug.h:5, from include/linux/container_of.h:5, from include/linux/list.h:5, from include/linux/wait.h:7, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from include/linux/fscache.h:17, from fs/erofs/fscache.c:5: >> include/linux/stddef.h:16:33: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/container_of.h:22:28: note: in expansion of macro 'offsetof' 22 | ((type *)(__mptr - offsetof(type, member))); }) | ^~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:48:26: note: in expansion of macro 'list_first_entry' 48 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ >> fs/erofs/fscache.c:50:33: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 50 | list_del(&subreq->rreq_link); | ^~ In file included from include/linux/list.h:5, from include/linux/wait.h:7, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from include/linux/fscache.h:17, from fs/erofs/fscache.c:5: fs/erofs/fscache.c: In function 'erofs_fscache_rreq_unlock_folios': fs/erofs/fscache.c:66:40: error: 'struct netfs_io_request' has no member named 'subrequests' 66 | subreq = list_first_entry(&rreq->subrequests, | ^~ include/linux/container_of.h:18:33: note: in definition of macro 'container_of' 18 | void *__mptr = (void *)(ptr); \ | ^~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:66:18: note: in expansion of macro 'list_first_entry' 66 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ In file included from include/linux/container_of.h:5, from include/linux/list.h:5, from include/linux/wait.h:7, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from include/linux/fscache.h:17, from fs/erofs/fscache.c:5: fs/erofs/fscache.c:66:40: error: 'struct netfs_io_request' has no member named 'subrequests' 66 | subreq = list_first_entry(&rreq->subrequests, | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:19:23: note: in expansion of macro '__same_type' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:66:18: note: in expansion of macro 'list_first_entry' 66 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ >> include/linux/container_of.h:19:54: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:19:23: note: in expansion of macro '__same_type' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:66:18: note: in expansion of macro 'list_first_entry' 66 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ fs/erofs/fscache.c:66:40: error: 'struct netfs_io_request' has no member named 'subrequests' 66 | subreq = list_first_entry(&rreq->subrequests, | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:20:23: note: in expansion of macro '__same_type' 20 | __same_type(*(ptr), void), \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:66:18: note: in expansion of macro 'list_first_entry' 66 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ include/linux/compiler_types.h:293:27: error: expression in static assertion is not an integer 293 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:19:23: note: in expansion of macro '__same_type' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:66:18: note: in expansion of macro 'list_first_entry' 66 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ In file included from include/uapi/linux/posix_types.h:5, from include/uapi/linux/types.h:14, from include/linux/types.h:6, from include/linux/kasan-checks.h:5, from include/asm-generic/rwonce.h:26, from ./arch/mips/include/generated/asm/rwonce.h:1, from include/linux/compiler.h:248, from include/linux/build_bug.h:5, from include/linux/container_of.h:5, from include/linux/list.h:5, from include/linux/wait.h:7, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from include/linux/fscache.h:17, from fs/erofs/fscache.c:5: >> include/linux/stddef.h:16:33: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/container_of.h:22:28: note: in expansion of macro 'offsetof' 22 | ((type *)(__mptr - offsetof(type, member))); }) | ^~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:531:9: note: in expansion of macro 'list_entry' 531 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ fs/erofs/fscache.c:66:18: note: in expansion of macro 'list_first_entry' 66 | subreq = list_first_entry(&rreq->subrequests, | ^~~~~~~~~~~~~~~~ fs/erofs/fscache.c:88:50: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 88 | if (!list_is_last(&subreq->rreq_link, | ^~ fs/erofs/fscache.c:89:48: error: 'struct netfs_io_request' has no member named 'subrequests' 89 | &rreq->subrequests)) { | ^~ In file included from include/linux/list.h:5, from include/linux/wait.h:7, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from include/linux/fscache.h:17, from fs/erofs/fscache.c:5: >> include/linux/list.h:564:25: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 564 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~ include/linux/container_of.h:18:33: note: in definition of macro 'container_of' 18 | void *__mptr = (void *)(ptr); \ | ^~~ include/linux/list.h:564:9: note: in expansion of macro 'list_entry' 564 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ fs/erofs/fscache.c:90:42: note: in expansion of macro 'list_next_entry' 90 | subreq = list_next_entry(subreq, rreq_link); | ^~~~~~~~~~~~~~~ In file included from include/linux/container_of.h:5, from include/linux/list.h:5, from include/linux/wait.h:7, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from include/linux/fscache.h:17, from fs/erofs/fscache.c:5: >> include/linux/list.h:564:25: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 564 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:19:23: note: in expansion of macro '__same_type' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:564:9: note: in expansion of macro 'list_entry' 564 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ fs/erofs/fscache.c:90:42: note: in expansion of macro 'list_next_entry' 90 | subreq = list_next_entry(subreq, rreq_link); | ^~~~~~~~~~~~~~~ >> include/linux/container_of.h:19:54: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:19:23: note: in expansion of macro '__same_type' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:564:9: note: in expansion of macro 'list_entry' 564 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ fs/erofs/fscache.c:90:42: note: in expansion of macro 'list_next_entry' 90 | subreq = list_next_entry(subreq, rreq_link); | ^~~~~~~~~~~~~~~ >> include/linux/list.h:564:25: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 564 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:20:23: note: in expansion of macro '__same_type' 20 | __same_type(*(ptr), void), \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:564:9: note: in expansion of macro 'list_entry' 564 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ fs/erofs/fscache.c:90:42: note: in expansion of macro 'list_next_entry' 90 | subreq = list_next_entry(subreq, rreq_link); | ^~~~~~~~~~~~~~~ include/linux/compiler_types.h:293:27: error: expression in static assertion is not an integer 293 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:19:23: note: in expansion of macro '__same_type' 19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:564:9: note: in expansion of macro 'list_entry' 564 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ fs/erofs/fscache.c:90:42: note: in expansion of macro 'list_next_entry' 90 | subreq = list_next_entry(subreq, rreq_link); | ^~~~~~~~~~~~~~~ In file included from include/uapi/linux/posix_types.h:5, from include/uapi/linux/types.h:14, from include/linux/types.h:6, from include/linux/kasan-checks.h:5, from include/asm-generic/rwonce.h:26, from ./arch/mips/include/generated/asm/rwonce.h:1, from include/linux/compiler.h:248, from include/linux/build_bug.h:5, from include/linux/container_of.h:5, from include/linux/list.h:5, from include/linux/wait.h:7, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from include/linux/fscache.h:17, from fs/erofs/fscache.c:5: >> include/linux/stddef.h:16:33: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/container_of.h:22:28: note: in expansion of macro 'offsetof' 22 | ((type *)(__mptr - offsetof(type, member))); }) | ^~~~~~~~ include/linux/list.h:520:9: note: in expansion of macro 'container_of' 520 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:564:9: note: in expansion of macro 'list_entry' 564 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ fs/erofs/fscache.c:90:42: note: in expansion of macro 'list_next_entry' 90 | subreq = list_next_entry(subreq, rreq_link); | ^~~~~~~~~~~~~~~ fs/erofs/fscache.c: In function 'erofs_fscache_read_folios_async': fs/erofs/fscache.c:158:47: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 158 | INIT_LIST_HEAD(&subreq->rreq_link); | ^~ fs/erofs/fscache.c:171:38: error: 'struct netfs_io_subrequest' has no member named 'rreq_link' 171 | list_add_tail(&subreq->rreq_link, &rreq->subrequests); | ^~ fs/erofs/fscache.c:171:56: error: 'struct netfs_io_request' has no member named 'subrequests' 171 | list_add_tail(&subreq->rreq_link, &rreq->subrequests); | ^~
vim +21 fs/erofs/fscache.c
c6be2bd0a5dd91 Jeffle Xu 2022-04-25 7 d435d53228dd03 Xin Yin 2022-05-09 8 static struct netfs_io_request *erofs_fscache_alloc_request(struct address_space *mapping, d435d53228dd03 Xin Yin 2022-05-09 9 loff_t start, size_t len) d435d53228dd03 Xin Yin 2022-05-09 10 { d435d53228dd03 Xin Yin 2022-05-09 11 struct netfs_io_request *rreq; d435d53228dd03 Xin Yin 2022-05-09 12 d435d53228dd03 Xin Yin 2022-05-09 13 rreq = kzalloc(sizeof(struct netfs_io_request), GFP_KERNEL); d435d53228dd03 Xin Yin 2022-05-09 14 if (!rreq) d435d53228dd03 Xin Yin 2022-05-09 15 return ERR_PTR(-ENOMEM); d435d53228dd03 Xin Yin 2022-05-09 16 d435d53228dd03 Xin Yin 2022-05-09 17 rreq->start = start; d435d53228dd03 Xin Yin 2022-05-09 18 rreq->len = len; d435d53228dd03 Xin Yin 2022-05-09 19 rreq->mapping = mapping; b5cb79dcfd03e7 Xin Yin 2022-05-27 20 rreq->inode = mapping->host; d435d53228dd03 Xin Yin 2022-05-09 @21 INIT_LIST_HEAD(&rreq->subrequests); d435d53228dd03 Xin Yin 2022-05-09 22 refcount_set(&rreq->ref, 1); d435d53228dd03 Xin Yin 2022-05-09 23 return rreq; d435d53228dd03 Xin Yin 2022-05-09 24 } d435d53228dd03 Xin Yin 2022-05-09 25 d435d53228dd03 Xin Yin 2022-05-09 26 static void erofs_fscache_put_request(struct netfs_io_request *rreq) d435d53228dd03 Xin Yin 2022-05-09 27 { d435d53228dd03 Xin Yin 2022-05-09 28 if (!refcount_dec_and_test(&rreq->ref)) d435d53228dd03 Xin Yin 2022-05-09 29 return; d435d53228dd03 Xin Yin 2022-05-09 30 if (rreq->cache_resources.ops) d435d53228dd03 Xin Yin 2022-05-09 31 rreq->cache_resources.ops->end_operation(&rreq->cache_resources); d435d53228dd03 Xin Yin 2022-05-09 32 kfree(rreq); d435d53228dd03 Xin Yin 2022-05-09 33 } d435d53228dd03 Xin Yin 2022-05-09 34 d435d53228dd03 Xin Yin 2022-05-09 35 static void erofs_fscache_put_subrequest(struct netfs_io_subrequest *subreq) d435d53228dd03 Xin Yin 2022-05-09 36 { d435d53228dd03 Xin Yin 2022-05-09 37 if (!refcount_dec_and_test(&subreq->ref)) d435d53228dd03 Xin Yin 2022-05-09 38 return; d435d53228dd03 Xin Yin 2022-05-09 39 erofs_fscache_put_request(subreq->rreq); d435d53228dd03 Xin Yin 2022-05-09 40 kfree(subreq); d435d53228dd03 Xin Yin 2022-05-09 41 } d435d53228dd03 Xin Yin 2022-05-09 42 d435d53228dd03 Xin Yin 2022-05-09 43 static void erofs_fscache_clear_subrequests(struct netfs_io_request *rreq) d435d53228dd03 Xin Yin 2022-05-09 44 { d435d53228dd03 Xin Yin 2022-05-09 45 struct netfs_io_subrequest *subreq; d435d53228dd03 Xin Yin 2022-05-09 46 d435d53228dd03 Xin Yin 2022-05-09 47 while (!list_empty(&rreq->subrequests)) { d435d53228dd03 Xin Yin 2022-05-09 48 subreq = list_first_entry(&rreq->subrequests, d435d53228dd03 Xin Yin 2022-05-09 49 struct netfs_io_subrequest, rreq_link); d435d53228dd03 Xin Yin 2022-05-09 @50 list_del(&subreq->rreq_link); d435d53228dd03 Xin Yin 2022-05-09 51 erofs_fscache_put_subrequest(subreq); d435d53228dd03 Xin Yin 2022-05-09 52 } d435d53228dd03 Xin Yin 2022-05-09 53 } d435d53228dd03 Xin Yin 2022-05-09 54
:::::: The code at line 21 was first introduced by commit :::::: d435d53228dd039fffecae123b8c138af6f96f99 erofs: change to use asynchronous io for fscache readpage/readahead
:::::: TO: Xin Yin <yinxin.x@bytedance.com> :::::: CC: Gao Xiang <hsiangkao@linux.alibaba.com>
-- 0-DAY CI Kernel Test Service https://01.org/lkp
| |