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]
Date:   Wed, 11 May 2022 14:34:41 +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/cifs-for-sfrench 5/6]
 fs/cifs/smb2pdu.c:4481:57: error: 'struct cifs_writedata' has no member
 named 'pages'

tree:   https://github.com/ammarfaizi2/linux-block dhowells/linux-fs/cifs-for-sfrench
head:   627ce4da99bb612945366770c5604019fb74b653
commit: e4b60df6a12099568c671591d36a9fa16515f6eb [5/6] cifs: Change the I/O paths to use an iterator rather than a page list
config: riscv-allmodconfig (https://download.01.org/0day-ci/archive/20220511/202205111436.hrkM324G-lkp@intel.com/config)
compiler: riscv64-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/e4b60df6a12099568c671591d36a9fa16515f6eb
        git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
        git fetch --no-tags ammarfaizi2-block dhowells/linux-fs/cifs-for-sfrench
        git checkout e4b60df6a12099568c671591d36a9fa16515f6eb
        # 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=riscv SHELL=/bin/bash fs/cifs/

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

All errors (new ones prefixed by >>):

   fs/cifs/smb2pdu.c: In function 'smb2_new_read_req':
   fs/cifs/smb2pdu.c:4058:57: error: 'struct cifs_readdata' has no member named 'pages'
    4058 |                                 server->smbd_conn, rdata->pages,
         |                                                         ^~
   fs/cifs/smb2pdu.c:4059:38: error: 'struct cifs_readdata' has no member named 'nr_pages'
    4059 |                                 rdata->nr_pages, rdata->page_offset,
         |                                      ^~
   fs/cifs/smb2pdu.c:4059:55: error: 'struct cifs_readdata' has no member named 'page_offset'
    4059 |                                 rdata->nr_pages, rdata->page_offset,
         |                                                       ^~
   fs/cifs/smb2pdu.c:4060:38: error: 'struct cifs_readdata' has no member named 'tailsz'
    4060 |                                 rdata->tailsz, true, need_invalidate);
         |                                      ^~
   fs/cifs/smb2pdu.c: In function 'smb2_async_writev':
>> fs/cifs/smb2pdu.c:4481:57: error: 'struct cifs_writedata' has no member named 'pages'
    4481 |                                 server->smbd_conn, wdata->pages,
         |                                                         ^~
   fs/cifs/smb2pdu.c:4482:38: error: 'struct cifs_writedata' has no member named 'nr_pages'
    4482 |                                 wdata->nr_pages, wdata->page_offset,
         |                                      ^~
   fs/cifs/smb2pdu.c:4482:55: error: 'struct cifs_writedata' has no member named 'page_offset'
    4482 |                                 wdata->nr_pages, wdata->page_offset,
         |                                                       ^~
   fs/cifs/smb2pdu.c:4483:38: error: 'struct cifs_writedata' has no member named 'tailsz'
    4483 |                                 wdata->tailsz, false, need_invalidate);
         |                                      ^~
   fs/cifs/smb2pdu.c:4490:26: error: 'struct cifs_writedata' has no member named 'nr_pages'
    4490 |                 if (wdata->nr_pages > 1)
         |                          ^~
   In file included from include/linux/byteorder/little_endian.h:5,
                    from arch/riscv/include/uapi/asm/byteorder.h:10,
                    from include/asm-generic/bitops/le.h:6,
                    from arch/riscv/include/asm/bitops.h:201,
                    from include/linux/bitops.h:33,
                    from include/linux/thread_info.h:27,
                    from include/asm-generic/preempt.h:5,
                    from ./arch/riscv/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:78,
                    from include/linux/spinlock.h:55,
                    from include/linux/wait.h:9,
                    from include/linux/wait_bit.h:8,
                    from include/linux/fs.h:6,
                    from fs/cifs/smb2pdu.c:18:
   fs/cifs/smb2pdu.c:4493:47: error: 'struct cifs_writedata' has no member named 'nr_pages'
    4493 |                                         (wdata->nr_pages - 1) * wdata->pagesz -
         |                                               ^~
   include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
      34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
         |                                                   ^
   fs/cifs/smb2pdu.c:4492:33: note: in expansion of macro 'cpu_to_le32'
    4492 |                                 cpu_to_le32(
         |                                 ^~~~~~~~~~~
   fs/cifs/smb2pdu.c:4493:70: error: 'struct cifs_writedata' has no member named 'pagesz'
    4493 |                                         (wdata->nr_pages - 1) * wdata->pagesz -
         |                                                                      ^~
   include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
      34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
         |                                                   ^
   fs/cifs/smb2pdu.c:4492:33: note: in expansion of macro 'cpu_to_le32'
    4492 |                                 cpu_to_le32(
         |                                 ^~~~~~~~~~~
   fs/cifs/smb2pdu.c:4494:46: error: 'struct cifs_writedata' has no member named 'page_offset'
    4494 |                                         wdata->page_offset + wdata->tailsz
         |                                              ^~
   include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
      34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
         |                                                   ^
   fs/cifs/smb2pdu.c:4492:33: note: in expansion of macro 'cpu_to_le32'
    4492 |                                 cpu_to_le32(
         |                                 ^~~~~~~~~~~
   fs/cifs/smb2pdu.c:4494:67: error: 'struct cifs_writedata' has no member named 'tailsz'
    4494 |                                         wdata->page_offset + wdata->tailsz
         |                                                                   ^~
   include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
      34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
         |                                                   ^
   fs/cifs/smb2pdu.c:4492:33: note: in expansion of macro 'cpu_to_le32'
    4492 |                                 cpu_to_le32(
         |                                 ^~~~~~~~~~~
   fs/cifs/smb2pdu.c:4497:64: error: 'struct cifs_writedata' has no member named 'tailsz'
    4497 |                         req->RemainingBytes = cpu_to_le32(wdata->tailsz);
         |                                                                ^~
   include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
      34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
         |                                                   ^
   fs/cifs/smb2pdu.c:4497:47: note: in expansion of macro 'cpu_to_le32'
    4497 |                         req->RemainingBytes = cpu_to_le32(wdata->tailsz);
         |                                               ^~~~~~~~~~~
   fs/cifs/smb2pdu.c:4520:21: error: 'struct smb_rqst' has no member named 'rq_npages'
    4520 |                 rqst.rq_npages = 0;
         |                     ^
--
   In file included from include/asm-generic/bug.h:22,
                    from arch/riscv/include/asm/bug.h:83,
                    from include/linux/bug.h:5,
                    from arch/riscv/include/asm/cmpxchg.h:9,
                    from arch/riscv/include/asm/atomic.h:19,
                    from include/linux/atomic.h:7,
                    from include/linux/mm_types_task.h:13,
                    from include/linux/mm_types.h:5,
                    from include/linux/buildid.h:5,
                    from include/linux/module.h:14,
                    from fs/cifs/smbdirect.c:7:
   fs/cifs/smbdirect.c: In function 'smbd_send':
>> fs/cifs/smbdirect.c:2037:48: error: 'struct smb_rqst' has no member named 'rq_npages'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/printk.h:132:17: note: in expansion of macro 'printk'
     132 |                 printk(fmt, ##__VA_ARGS__);             \
         |                 ^~~~~~
   include/linux/printk.h:625:9: note: in expansion of macro 'no_printk'
     625 |         no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~
   fs/cifs/cifs_debug.h:65:17: note: in expansion of macro 'pr_debug_once'
      65 |                 pr_debug_ ## ratefunc("%s: " fmt,                       \
         |                 ^~~~~~~~~
   fs/cifs/cifs_debug.h:77:17: note: in expansion of macro 'cifs_dbg_func'
      77 |                 cifs_dbg_func(once, type, fmt, ##__VA_ARGS__);          \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
>> fs/cifs/smbdirect.c:2037:65: error: 'struct smb_rqst' has no member named 'rq_pagesz'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                                 ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/printk.h:132:17: note: in expansion of macro 'printk'
     132 |                 printk(fmt, ##__VA_ARGS__);             \
         |                 ^~~~~~
   include/linux/printk.h:625:9: note: in expansion of macro 'no_printk'
     625 |         no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~
   fs/cifs/cifs_debug.h:65:17: note: in expansion of macro 'pr_debug_once'
      65 |                 pr_debug_ ## ratefunc("%s: " fmt,                       \
         |                 ^~~~~~~~~
   fs/cifs/cifs_debug.h:77:17: note: in expansion of macro 'cifs_dbg_func'
      77 |                 cifs_dbg_func(once, type, fmt, ##__VA_ARGS__);          \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
   fs/cifs/smbdirect.c:2038:23: error: 'struct smb_rqst' has no member named 'rq_tailsz'
    2038 |                   rqst->rq_tailsz, smb_rqst_len(server, rqst));
         |                       ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/printk.h:132:17: note: in expansion of macro 'printk'
     132 |                 printk(fmt, ##__VA_ARGS__);             \
         |                 ^~~~~~
   include/linux/printk.h:625:9: note: in expansion of macro 'no_printk'
     625 |         no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~
   fs/cifs/cifs_debug.h:65:17: note: in expansion of macro 'pr_debug_once'
      65 |                 pr_debug_ ## ratefunc("%s: " fmt,                       \
         |                 ^~~~~~~~~
   fs/cifs/cifs_debug.h:77:17: note: in expansion of macro 'cifs_dbg_func'
      77 |                 cifs_dbg_func(once, type, fmt, ##__VA_ARGS__);          \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
>> fs/cifs/smbdirect.c:2037:48: error: 'struct smb_rqst' has no member named 'rq_npages'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/once_lite.h:19:25: note: in expansion of macro 'printk'
      19 |                         func(__VA_ARGS__);                              \
         |                         ^~~~
   include/linux/once_lite.h:11:9: note: in expansion of macro 'DO_ONCE_LITE_IF'
      11 |         DO_ONCE_LITE_IF(true, func, ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~
   include/linux/printk.h:585:9: note: in expansion of macro 'DO_ONCE_LITE'
     585 |         DO_ONCE_LITE(printk, fmt, ##__VA_ARGS__)
         |         ^~~~~~~~~~~~
   include/linux/printk.h:602:9: note: in expansion of macro 'printk_once'
     602 |         printk_once(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~
   fs/cifs/cifs_debug.h:68:17: note: in expansion of macro 'pr_err_once'
      68 |                 pr_err_ ## ratefunc("VFS: " fmt, ##__VA_ARGS__);        \
         |                 ^~~~~~~
   fs/cifs/cifs_debug.h:77:17: note: in expansion of macro 'cifs_dbg_func'
      77 |                 cifs_dbg_func(once, type, fmt, ##__VA_ARGS__);          \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
>> fs/cifs/smbdirect.c:2037:65: error: 'struct smb_rqst' has no member named 'rq_pagesz'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                                 ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/once_lite.h:19:25: note: in expansion of macro 'printk'
      19 |                         func(__VA_ARGS__);                              \
         |                         ^~~~
   include/linux/once_lite.h:11:9: note: in expansion of macro 'DO_ONCE_LITE_IF'
      11 |         DO_ONCE_LITE_IF(true, func, ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~
   include/linux/printk.h:585:9: note: in expansion of macro 'DO_ONCE_LITE'
     585 |         DO_ONCE_LITE(printk, fmt, ##__VA_ARGS__)
         |         ^~~~~~~~~~~~
   include/linux/printk.h:602:9: note: in expansion of macro 'printk_once'
     602 |         printk_once(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~
   fs/cifs/cifs_debug.h:68:17: note: in expansion of macro 'pr_err_once'
      68 |                 pr_err_ ## ratefunc("VFS: " fmt, ##__VA_ARGS__);        \
         |                 ^~~~~~~
   fs/cifs/cifs_debug.h:77:17: note: in expansion of macro 'cifs_dbg_func'
      77 |                 cifs_dbg_func(once, type, fmt, ##__VA_ARGS__);          \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
   fs/cifs/smbdirect.c:2038:23: error: 'struct smb_rqst' has no member named 'rq_tailsz'
    2038 |                   rqst->rq_tailsz, smb_rqst_len(server, rqst));
         |                       ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/once_lite.h:19:25: note: in expansion of macro 'printk'
      19 |                         func(__VA_ARGS__);                              \
         |                         ^~~~
   include/linux/once_lite.h:11:9: note: in expansion of macro 'DO_ONCE_LITE_IF'
      11 |         DO_ONCE_LITE_IF(true, func, ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~
   include/linux/printk.h:585:9: note: in expansion of macro 'DO_ONCE_LITE'
     585 |         DO_ONCE_LITE(printk, fmt, ##__VA_ARGS__)
         |         ^~~~~~~~~~~~
   include/linux/printk.h:602:9: note: in expansion of macro 'printk_once'
     602 |         printk_once(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~
   fs/cifs/cifs_debug.h:68:17: note: in expansion of macro 'pr_err_once'
      68 |                 pr_err_ ## ratefunc("VFS: " fmt, ##__VA_ARGS__);        \
         |                 ^~~~~~~
   fs/cifs/cifs_debug.h:77:17: note: in expansion of macro 'cifs_dbg_func'
      77 |                 cifs_dbg_func(once, type, fmt, ##__VA_ARGS__);          \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
>> fs/cifs/smbdirect.c:2037:48: error: 'struct smb_rqst' has no member named 'rq_npages'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/printk.h:132:17: note: in expansion of macro 'printk'
     132 |                 printk(fmt, ##__VA_ARGS__);             \
         |                 ^~~~~~
   include/linux/printk.h:625:9: note: in expansion of macro 'no_printk'
     625 |         no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~
   fs/cifs/cifs_debug.h:70:17: note: in expansion of macro 'pr_debug_once'
      70 |                 pr_debug_ ## ratefunc(fmt, ##__VA_ARGS__);              \
         |                 ^~~~~~~~~
   fs/cifs/cifs_debug.h:77:17: note: in expansion of macro 'cifs_dbg_func'
      77 |                 cifs_dbg_func(once, type, fmt, ##__VA_ARGS__);          \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
>> fs/cifs/smbdirect.c:2037:65: error: 'struct smb_rqst' has no member named 'rq_pagesz'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                                 ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/printk.h:132:17: note: in expansion of macro 'printk'
     132 |                 printk(fmt, ##__VA_ARGS__);             \
         |                 ^~~~~~
   include/linux/printk.h:625:9: note: in expansion of macro 'no_printk'
     625 |         no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~
   fs/cifs/cifs_debug.h:70:17: note: in expansion of macro 'pr_debug_once'
      70 |                 pr_debug_ ## ratefunc(fmt, ##__VA_ARGS__);              \
         |                 ^~~~~~~~~
   fs/cifs/cifs_debug.h:77:17: note: in expansion of macro 'cifs_dbg_func'
      77 |                 cifs_dbg_func(once, type, fmt, ##__VA_ARGS__);          \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
   fs/cifs/smbdirect.c:2038:23: error: 'struct smb_rqst' has no member named 'rq_tailsz'
    2038 |                   rqst->rq_tailsz, smb_rqst_len(server, rqst));
         |                       ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/printk.h:132:17: note: in expansion of macro 'printk'
     132 |                 printk(fmt, ##__VA_ARGS__);             \
         |                 ^~~~~~
   include/linux/printk.h:625:9: note: in expansion of macro 'no_printk'
     625 |         no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~
   fs/cifs/cifs_debug.h:70:17: note: in expansion of macro 'pr_debug_once'
      70 |                 pr_debug_ ## ratefunc(fmt, ##__VA_ARGS__);              \
         |                 ^~~~~~~~~
   fs/cifs/cifs_debug.h:77:17: note: in expansion of macro 'cifs_dbg_func'
      77 |                 cifs_dbg_func(once, type, fmt, ##__VA_ARGS__);          \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
   In file included from include/asm-generic/bug.h:22,
                    from arch/riscv/include/asm/bug.h:83,
                    from include/linux/bug.h:5,
                    from arch/riscv/include/asm/cmpxchg.h:9,
                    from arch/riscv/include/asm/atomic.h:19,
                    from include/linux/atomic.h:7,
                    from include/linux/mm_types_task.h:13,
                    from include/linux/mm_types.h:5,
                    from include/linux/buildid.h:5,
                    from include/linux/module.h:14,
                    from fs/cifs/smbdirect.c:7:
>> fs/cifs/smbdirect.c:2037:48: error: 'struct smb_rqst' has no member named 'rq_npages'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                ^~
   include/linux/printk.h:683:64: note: in definition of macro 'pr_debug_ratelimited'
     683 |                 __dynamic_pr_debug(&descriptor, pr_fmt(fmt), ##__VA_ARGS__);    \
         |                                                                ^~~~~~~~~~~
   fs/cifs/cifs_debug.h:79:17: note: in expansion of macro 'cifs_dbg_func'
      79 |                 cifs_dbg_func(ratelimited, type, fmt, ##__VA_ARGS__);   \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
>> fs/cifs/smbdirect.c:2037:65: error: 'struct smb_rqst' has no member named 'rq_pagesz'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                                 ^~
   include/linux/printk.h:683:64: note: in definition of macro 'pr_debug_ratelimited'
     683 |                 __dynamic_pr_debug(&descriptor, pr_fmt(fmt), ##__VA_ARGS__);    \
         |                                                                ^~~~~~~~~~~
   fs/cifs/cifs_debug.h:79:17: note: in expansion of macro 'cifs_dbg_func'
      79 |                 cifs_dbg_func(ratelimited, type, fmt, ##__VA_ARGS__);   \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
   fs/cifs/smbdirect.c:2038:23: error: 'struct smb_rqst' has no member named 'rq_tailsz'
    2038 |                   rqst->rq_tailsz, smb_rqst_len(server, rqst));
         |                       ^~
   include/linux/printk.h:683:64: note: in definition of macro 'pr_debug_ratelimited'
     683 |                 __dynamic_pr_debug(&descriptor, pr_fmt(fmt), ##__VA_ARGS__);    \
         |                                                                ^~~~~~~~~~~
   fs/cifs/cifs_debug.h:79:17: note: in expansion of macro 'cifs_dbg_func'
      79 |                 cifs_dbg_func(ratelimited, type, fmt, ##__VA_ARGS__);   \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
   In file included from include/asm-generic/bug.h:22,
                    from arch/riscv/include/asm/bug.h:83,
                    from include/linux/bug.h:5,
                    from arch/riscv/include/asm/cmpxchg.h:9,
                    from arch/riscv/include/asm/atomic.h:19,
                    from include/linux/atomic.h:7,
                    from include/linux/mm_types_task.h:13,
                    from include/linux/mm_types.h:5,
                    from include/linux/buildid.h:5,
                    from include/linux/module.h:14,
                    from fs/cifs/smbdirect.c:7:
>> fs/cifs/smbdirect.c:2037:48: error: 'struct smb_rqst' has no member named 'rq_npages'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/printk.h:640:17: note: in expansion of macro 'printk'
     640 |                 printk(fmt, ##__VA_ARGS__);                             \
         |                 ^~~~~~
   include/linux/printk.h:654:9: note: in expansion of macro 'printk_ratelimited'
     654 |         printk_ratelimited(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~~~~
   fs/cifs/cifs_debug.h:68:17: note: in expansion of macro 'pr_err_ratelimited'
      68 |                 pr_err_ ## ratefunc("VFS: " fmt, ##__VA_ARGS__);        \
         |                 ^~~~~~~
   fs/cifs/cifs_debug.h:79:17: note: in expansion of macro 'cifs_dbg_func'
      79 |                 cifs_dbg_func(ratelimited, type, fmt, ##__VA_ARGS__);   \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
>> fs/cifs/smbdirect.c:2037:65: error: 'struct smb_rqst' has no member named 'rq_pagesz'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                                 ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/printk.h:640:17: note: in expansion of macro 'printk'
     640 |                 printk(fmt, ##__VA_ARGS__);                             \
         |                 ^~~~~~
   include/linux/printk.h:654:9: note: in expansion of macro 'printk_ratelimited'
     654 |         printk_ratelimited(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~~~~
   fs/cifs/cifs_debug.h:68:17: note: in expansion of macro 'pr_err_ratelimited'
      68 |                 pr_err_ ## ratefunc("VFS: " fmt, ##__VA_ARGS__);        \
         |                 ^~~~~~~
   fs/cifs/cifs_debug.h:79:17: note: in expansion of macro 'cifs_dbg_func'
      79 |                 cifs_dbg_func(ratelimited, type, fmt, ##__VA_ARGS__);   \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
   fs/cifs/smbdirect.c:2038:23: error: 'struct smb_rqst' has no member named 'rq_tailsz'
    2038 |                   rqst->rq_tailsz, smb_rqst_len(server, rqst));
         |                       ^~
   include/linux/printk.h:418:33: note: in definition of macro 'printk_index_wrap'
     418 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   include/linux/printk.h:640:17: note: in expansion of macro 'printk'
     640 |                 printk(fmt, ##__VA_ARGS__);                             \
         |                 ^~~~~~
   include/linux/printk.h:654:9: note: in expansion of macro 'printk_ratelimited'
     654 |         printk_ratelimited(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
         |         ^~~~~~~~~~~~~~~~~~
   fs/cifs/cifs_debug.h:68:17: note: in expansion of macro 'pr_err_ratelimited'
      68 |                 pr_err_ ## ratefunc("VFS: " fmt, ##__VA_ARGS__);        \
         |                 ^~~~~~~
   fs/cifs/cifs_debug.h:79:17: note: in expansion of macro 'cifs_dbg_func'
      79 |                 cifs_dbg_func(ratelimited, type, fmt, ##__VA_ARGS__);   \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
   In file included from include/asm-generic/bug.h:22,
                    from arch/riscv/include/asm/bug.h:83,
                    from include/linux/bug.h:5,
                    from arch/riscv/include/asm/cmpxchg.h:9,
                    from arch/riscv/include/asm/atomic.h:19,
                    from include/linux/atomic.h:7,
                    from include/linux/mm_types_task.h:13,
                    from include/linux/mm_types.h:5,
                    from include/linux/buildid.h:5,
                    from include/linux/module.h:14,
                    from fs/cifs/smbdirect.c:7:
>> fs/cifs/smbdirect.c:2037:48: error: 'struct smb_rqst' has no member named 'rq_npages'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                ^~
   include/linux/printk.h:683:64: note: in definition of macro 'pr_debug_ratelimited'
     683 |                 __dynamic_pr_debug(&descriptor, pr_fmt(fmt), ##__VA_ARGS__);    \
         |                                                                ^~~~~~~~~~~
   fs/cifs/cifs_debug.h:79:17: note: in expansion of macro 'cifs_dbg_func'
      79 |                 cifs_dbg_func(ratelimited, type, fmt, ##__VA_ARGS__);   \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
>> fs/cifs/smbdirect.c:2037:65: error: 'struct smb_rqst' has no member named 'rq_pagesz'
    2037 |                   rqst_idx, rqst->rq_nvec, rqst->rq_npages, rqst->rq_pagesz,
         |                                                                 ^~
   include/linux/printk.h:683:64: note: in definition of macro 'pr_debug_ratelimited'
     683 |                 __dynamic_pr_debug(&descriptor, pr_fmt(fmt), ##__VA_ARGS__);    \
         |                                                                ^~~~~~~~~~~
   fs/cifs/cifs_debug.h:79:17: note: in expansion of macro 'cifs_dbg_func'
      79 |                 cifs_dbg_func(ratelimited, type, fmt, ##__VA_ARGS__);   \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
   fs/cifs/smbdirect.c:2038:23: error: 'struct smb_rqst' has no member named 'rq_tailsz'
    2038 |                   rqst->rq_tailsz, smb_rqst_len(server, rqst));
         |                       ^~
   include/linux/printk.h:683:64: note: in definition of macro 'pr_debug_ratelimited'
     683 |                 __dynamic_pr_debug(&descriptor, pr_fmt(fmt), ##__VA_ARGS__);    \
         |                                                                ^~~~~~~~~~~
   fs/cifs/cifs_debug.h:79:17: note: in expansion of macro 'cifs_dbg_func'
      79 |                 cifs_dbg_func(ratelimited, type, fmt, ##__VA_ARGS__);   \
         |                 ^~~~~~~~~~~~~
   fs/cifs/smbdirect.c:138:17: note: in expansion of macro 'cifs_dbg'
     138 |                 cifs_dbg(VFS, "%s:%d " fmt, __func__, __LINE__, ##args);\
         |                 ^~~~~~~~
   fs/cifs/smbdirect.c:146:41: note: in expansion of macro 'log_rdma'
     146 | #define log_write(level, fmt, args...)  log_rdma(level, LOG_WRITE, fmt, ##args)
         |                                         ^~~~~~~~
   fs/cifs/smbdirect.c:2036:9: note: in expansion of macro 'log_write'
    2036 |         log_write(INFO, "rqst_idx=%d nvec=%d rqst->rq_npages=%d rq_pagesz=%d rq_tailsz=%d buflen=%lu\n",
         |         ^~~~~~~~~
   fs/cifs/smbdirect.c:2107:29: error: 'struct smb_rqst' has no member named 'rq_npages'
    2107 |         for (i = 0; i < rqst->rq_npages; i++) {
         |                             ^~
>> fs/cifs/smbdirect.c:2110:17: error: implicit declaration of function 'rqst_page_get_length' [-Werror=implicit-function-declaration]
    2110 |                 rqst_page_get_length(rqst, i, &buflen, &offset);
         |                 ^~~~~~~~~~~~~~~~~~~~
>> fs/cifs/smbdirect.c:2123:43: error: 'struct smb_rqst' has no member named 'rq_pages'
    2123 |                                 info, rqst->rq_pages[i],
         |                                           ^~
   cc1: some warnings being treated as errors


vim +4481 fs/cifs/smb2pdu.c

33319141252fd1 Pavel Shilovsky 2012-09-18  4428  
33319141252fd1 Pavel Shilovsky 2012-09-18  4429  /* smb2_async_writev - send an async write, and set up mid to handle result */
33319141252fd1 Pavel Shilovsky 2012-09-18  4430  int
4a5c80d7b5615b Steve French    2014-02-07  4431  smb2_async_writev(struct cifs_writedata *wdata,
4a5c80d7b5615b Steve French    2014-02-07  4432  		  void (*release)(struct kref *kref))
33319141252fd1 Pavel Shilovsky 2012-09-18  4433  {
cb7e9eabb2b584 Pavel Shilovsky 2014-06-05  4434  	int rc = -EACCES, flags = 0;
33319141252fd1 Pavel Shilovsky 2012-09-18  4435  	struct smb2_write_req *req = NULL;
0d35e382e4e96a Ronnie Sahlberg 2021-11-05  4436  	struct smb2_hdr *shdr;
33319141252fd1 Pavel Shilovsky 2012-09-18  4437  	struct cifs_tcon *tcon = tlink_tcon(wdata->cfile->tlink);
352d96f3acc6e0 Aurelien Aptel  2020-05-31  4438  	struct TCP_Server_Info *server = wdata->server;
c713c8770fa5bf Ronnie Sahlberg 2018-06-12  4439  	struct kvec iov[1];
738f9de5cdb917 Pavel Shilovsky 2016-11-23  4440  	struct smb_rqst rqst = { };
f5688a6d7c5c52 Ronnie Sahlberg 2017-11-20  4441  	unsigned int total_len;
33319141252fd1 Pavel Shilovsky 2012-09-18  4442  
352d96f3acc6e0 Aurelien Aptel  2020-05-31  4443  	if (!wdata->server)
352d96f3acc6e0 Aurelien Aptel  2020-05-31  4444  		server = wdata->server = cifs_pick_channel(tcon->ses);
352d96f3acc6e0 Aurelien Aptel  2020-05-31  4445  
352d96f3acc6e0 Aurelien Aptel  2020-05-31  4446  	rc = smb2_plain_req_init(SMB2_WRITE, tcon, server,
352d96f3acc6e0 Aurelien Aptel  2020-05-31  4447  				 (void **) &req, &total_len);
f0b93cb9d10789 Pavel Shilovsky 2019-01-25  4448  	if (rc)
f0b93cb9d10789 Pavel Shilovsky 2019-01-25  4449  		return rc;
33319141252fd1 Pavel Shilovsky 2012-09-18  4450  
5a77e75fedce55 Steve French    2018-05-09  4451  	if (smb3_encryption_required(tcon))
7fb8986e7449d0 Pavel Shilovsky 2016-10-31  4452  		flags |= CIFS_TRANSFORM_REQ;
7fb8986e7449d0 Pavel Shilovsky 2016-10-31  4453  
0d35e382e4e96a Ronnie Sahlberg 2021-11-05  4454  	shdr = (struct smb2_hdr *)req;
0d35e382e4e96a Ronnie Sahlberg 2021-11-05  4455  	shdr->Id.SyncId.ProcessId = cpu_to_le32(wdata->cfile->pid);
33319141252fd1 Pavel Shilovsky 2012-09-18  4456  
351a59dace0e0e Paulo Alcantara 2022-03-21  4457  	req->PersistentFileId = wdata->cfile->fid.persistent_fid;
351a59dace0e0e Paulo Alcantara 2022-03-21  4458  	req->VolatileFileId = wdata->cfile->fid.volatile_fid;
33319141252fd1 Pavel Shilovsky 2012-09-18  4459  	req->WriteChannelInfoOffset = 0;
33319141252fd1 Pavel Shilovsky 2012-09-18  4460  	req->WriteChannelInfoLength = 0;
33319141252fd1 Pavel Shilovsky 2012-09-18  4461  	req->Channel = 0;
33319141252fd1 Pavel Shilovsky 2012-09-18  4462  	req->Offset = cpu_to_le64(wdata->offset);
33319141252fd1 Pavel Shilovsky 2012-09-18  4463  	req->DataOffset = cpu_to_le16(
f5688a6d7c5c52 Ronnie Sahlberg 2017-11-20  4464  				offsetof(struct smb2_write_req, Buffer));
33319141252fd1 Pavel Shilovsky 2012-09-18  4465  	req->RemainingBytes = 0;
d323c24617527f Steve French    2019-02-25  4466  
d323c24617527f Steve French    2019-02-25  4467  	trace_smb3_write_enter(0 /* xid */, wdata->cfile->fid.persistent_fid,
d323c24617527f Steve French    2019-02-25  4468  		tcon->tid, tcon->ses->Suid, wdata->offset, wdata->bytes);
db223a590d45b5 Long Li         2017-11-22  4469  #ifdef CONFIG_CIFS_SMB_DIRECT
db223a590d45b5 Long Li         2017-11-22  4470  	/*
db223a590d45b5 Long Li         2017-11-22  4471  	 * If we want to do a server RDMA read, fill in and append
db223a590d45b5 Long Li         2017-11-22  4472  	 * smbd_buffer_descriptor_v1 to the end of write request
db223a590d45b5 Long Li         2017-11-22  4473  	 */
bb4c0419476bd3 Long Li         2018-04-17  4474  	if (server->rdma && !server->sign && wdata->bytes >=
db223a590d45b5 Long Li         2017-11-22  4475  		server->smbd_conn->rdma_readwrite_threshold) {
db223a590d45b5 Long Li         2017-11-22  4476  
db223a590d45b5 Long Li         2017-11-22  4477  		struct smbd_buffer_descriptor_v1 *v1;
db223a590d45b5 Long Li         2017-11-22  4478  		bool need_invalidate = server->dialect == SMB30_PROT_ID;
db223a590d45b5 Long Li         2017-11-22  4479  
db223a590d45b5 Long Li         2017-11-22  4480  		wdata->mr = smbd_register_mr(
db223a590d45b5 Long Li         2017-11-22 @4481  				server->smbd_conn, wdata->pages,
7cf20bce77581b Long Li         2018-05-30  4482  				wdata->nr_pages, wdata->page_offset,
7cf20bce77581b Long Li         2018-05-30  4483  				wdata->tailsz, false, need_invalidate);
db223a590d45b5 Long Li         2017-11-22  4484  		if (!wdata->mr) {
b7972092199f6d Long Li         2019-04-05  4485  			rc = -EAGAIN;
db223a590d45b5 Long Li         2017-11-22  4486  			goto async_writev_out;
db223a590d45b5 Long Li         2017-11-22  4487  		}
db223a590d45b5 Long Li         2017-11-22  4488  		req->Length = 0;
db223a590d45b5 Long Li         2017-11-22  4489  		req->DataOffset = 0;
7cf20bce77581b Long Li         2018-05-30  4490  		if (wdata->nr_pages > 1)
db223a590d45b5 Long Li         2017-11-22  4491  			req->RemainingBytes =
7cf20bce77581b Long Li         2018-05-30  4492  				cpu_to_le32(
7cf20bce77581b Long Li         2018-05-30  4493  					(wdata->nr_pages - 1) * wdata->pagesz -
7cf20bce77581b Long Li         2018-05-30  4494  					wdata->page_offset + wdata->tailsz
7cf20bce77581b Long Li         2018-05-30  4495  				);
7cf20bce77581b Long Li         2018-05-30  4496  		else
7cf20bce77581b Long Li         2018-05-30  4497  			req->RemainingBytes = cpu_to_le32(wdata->tailsz);
db223a590d45b5 Long Li         2017-11-22  4498  		req->Channel = SMB2_CHANNEL_RDMA_V1_INVALIDATE;
db223a590d45b5 Long Li         2017-11-22  4499  		if (need_invalidate)
db223a590d45b5 Long Li         2017-11-22  4500  			req->Channel = SMB2_CHANNEL_RDMA_V1;
db223a590d45b5 Long Li         2017-11-22  4501  		req->WriteChannelInfoOffset =
2026b06e9ce852 Steve French    2018-01-24  4502  			cpu_to_le16(offsetof(struct smb2_write_req, Buffer));
db223a590d45b5 Long Li         2017-11-22  4503  		req->WriteChannelInfoLength =
2026b06e9ce852 Steve French    2018-01-24  4504  			cpu_to_le16(sizeof(struct smbd_buffer_descriptor_v1));
db223a590d45b5 Long Li         2017-11-22  4505  		v1 = (struct smbd_buffer_descriptor_v1 *) &req->Buffer[0];
2026b06e9ce852 Steve French    2018-01-24  4506  		v1->offset = cpu_to_le64(wdata->mr->mr->iova);
2026b06e9ce852 Steve French    2018-01-24  4507  		v1->token = cpu_to_le32(wdata->mr->mr->rkey);
2026b06e9ce852 Steve French    2018-01-24  4508  		v1->length = cpu_to_le32(wdata->mr->mr->length);
db223a590d45b5 Long Li         2017-11-22  4509  	}
db223a590d45b5 Long Li         2017-11-22  4510  #endif
c713c8770fa5bf Ronnie Sahlberg 2018-06-12  4511  	iov[0].iov_len = total_len - 1;
c713c8770fa5bf Ronnie Sahlberg 2018-06-12  4512  	iov[0].iov_base = (char *)req;
33319141252fd1 Pavel Shilovsky 2012-09-18  4513  
738f9de5cdb917 Pavel Shilovsky 2016-11-23  4514  	rqst.rq_iov = iov;
c713c8770fa5bf Ronnie Sahlberg 2018-06-12  4515  	rqst.rq_nvec = 1;
e4b60df6a12099 David Howells   2022-01-24  4516  	rqst.rq_iter = wdata->iter;
db223a590d45b5 Long Li         2017-11-22  4517  #ifdef CONFIG_CIFS_SMB_DIRECT
db223a590d45b5 Long Li         2017-11-22  4518  	if (wdata->mr) {
c713c8770fa5bf Ronnie Sahlberg 2018-06-12  4519  		iov[0].iov_len += sizeof(struct smbd_buffer_descriptor_v1);
db223a590d45b5 Long Li         2017-11-22  4520  		rqst.rq_npages = 0;
db223a590d45b5 Long Li         2017-11-22  4521  	}
db223a590d45b5 Long Li         2017-11-22  4522  #endif
f96637be081141 Joe Perches     2013-05-04  4523  	cifs_dbg(FYI, "async write at %llu %u bytes\n",
f96637be081141 Joe Perches     2013-05-04  4524  		 wdata->offset, wdata->bytes);
33319141252fd1 Pavel Shilovsky 2012-09-18  4525  

:::::: The code at line 4481 was first introduced by commit
:::::: db223a590d45b5e584a430c46a778699a5825cdd CIFS: SMBD: Upper layer performs SMB write via RDMA read through memory registration

:::::: TO: Long Li <longli@...rosoft.com>
:::::: CC: Steve French <smfrench@...il.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