lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202207011330.pej34H71-lkp@intel.com>
Date:   Fri, 1 Jul 2022 13:46:14 +0800
From:   kernel test robot <lkp@...el.com>
To:     David Howells <dhowells@...hat.com>
Cc:     kbuild-all@...ts.01.org,
        GNU/Weeb Mailing List <gwml@...r.gnuweeb.org>,
        linux-kernel@...r.kernel.org
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@...el.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@...edance.com>
:::::: CC: Gao Xiang <hsiangkao@...ux.alibaba.com>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ