• Linus Torvalds's avatar
    Merge tag '6.3-rc-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 307e14c0
    Linus Torvalds authored
    Pull cifs client updates from Steve French:
     "The largest subset of this is from David Howells et al: making the
      cifs/smb3 driver pass iov_iters down to the lowest layers, directly to
      the network transport rather than passing lists of pages around,
      helping multiple areas:
    
       - Pin user pages, thereby fixing the race between concurrent DIO read
         and fork, where the pages containing the DIO read buffer may end up
         belonging to the child process and not the parent - with the result
         that the parent might not see the retrieved data.
    
       - cifs shouldn't take refs on pages extracted from non-user-backed
         iterators (eg. KVEC). With these changes, cifs will apply the
         appropriate cleanup.
    
       - Making it easier to transition to using folios in cifs rather than
         pages by dealing with them through BVEC and XARRAY iterators.
    
       - Allowing cifs to use the new splice function
    
      The remainder are:
    
       - fixes for stable, including various fixes for uninitialized memory,
         wrong length field causing mount issue to very old servers,
         important directory lease fixes and reconnect fixes
    
       - cleanups (unused code removal, change one element array usage, and
         a change form strtobool to kstrtobool, and Kconfig cleanups)
    
       - SMBDIRECT (RDMA) fixes including iov_iter integration and UAF fixes
    
       - reconnect fixes
    
       - multichannel fixes, including improving channel allocation (to
         least used channel)
    
       - remove the last use of lock_page_killable by moving to
         folio_lock_killable"
    
    * tag '6.3-rc-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6: (46 commits)
      update internal module version number for cifs.ko
      cifs: update ip_addr for ses only for primary chan setup
      cifs: use tcon allocation functions even for dummy tcon
      cifs: use the least loaded channel for sending requests
      cifs: DIO to/from KVEC-type iterators should now work
      cifs: Remove unused code
      cifs: Build the RDMA SGE list directly from an iterator
      cifs: Change the I/O paths to use an iterator rather than a page list
      cifs: Add a function to read into an iter from a socket
      cifs: Add some helper functions
      cifs: Add a function to Hash the contents of an iterator
      cifs: Add a function to build an RDMA SGE list from an iterator
      netfs: Add a function to extract an iterator into a scatterlist
      netfs: Add a function to extract a UBUF or IOVEC into a BVEC iterator
      cifs: Implement splice_read to pass down ITER_BVEC not ITER_PIPE
      splice: Export filemap/direct_splice_read()
      iov_iter: Add a function to extract a page list from an iterator
      iov_iter: Define flags to qualify page extraction.
      splice: Add a func to do a splice from an O_DIRECT file without ITER_PIPE
      splice: Add a func to do a splice from a buffered file without ITER_PIPE
      ...
    307e14c0
blk-map.c 18 KB