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>] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 22 Feb 2023 18:02:29 -0600
From:   Steve French <smfrench@...il.com>
To:     Linus Torvalds <torvalds@...ux-foundation.org>
Cc:     LKML <linux-kernel@...r.kernel.org>,
        David Howells <dhowells@...hat.com>,
        CIFS <linux-cifs@...r.kernel.org>
Subject: [GIT PULL] smb3 client fixes

Please pull the following changes since commit
c9c3395d5e3dcc6daee66c6908354d47bf98cb0c:

  Linux 6.2 (2023-02-19 14:24:22 -0800)

are available in the Git repository at:

  git://git.samba.org/sfrench/cifs-2.6.git tags/6.3-rc-smb3-client-fixes

for you to fetch changes up to fdbf807215250217c83f1cb715b883cd910102fa:

  update internal module version number for cifs.ko (2023-02-21 01:25:44 -0600)

----------------------------------------------------------------
46 fs/cifs (smb3 client) changesets, 37 for the fs/cifs directory and 9
outside (for related helper functions and cleanup of now unused
functions) from David Howells and Willy.

Note that there's a conflict with the mm tree with regard to the
replacement of find_get_pages_range_tag() with
filemap_get_folios_tag() which can be resolved by the patch David
provided: https://lore.kernel.org/lkml/2885897.1676990364@warthog.procyon.org.uk/
or what Stephen Rothwell did:
https://lore.kernel.org/lkml/20230222134927.459b036b@canb.auug.org.au/
in linux-next

The largest subset of this P/R 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:
- ten 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
- 9 cleanups (unused code removal, change one element array usage, and
a change form strtobool to kstrtobool, and 2 Kconfig cleanups)
- 6 SMBDIRECT (RDMA) fixes including iov_iter integration and UAF fixes
- 2 reconnect fixes
- 3 multichannel fixes, including improving channel allocation (to
least used channel)
- remove last use of lock_page_killable by moving to folio_lock_killable

Also FYI there are additional important directory lease (metadata
caching fixes) and multichannel fixes being tested that are not
included in this P/R but should be ready next week.  And two small
fixes to David's series were also identified that I can send next week
(I also wanted to reduce risk of merge conflicts)
----------------------------------------------------------------
Andy Shevchenko (1):
      cifs: Get rid of unneeded conditional in the smb2_get_aead_req()

Christophe JAILLET (1):
      cifs: Use kstrtobool() instead of strtobool()

David Howells (17):
      mm: Pass info, not iter, into filemap_get_pages()
      splice: Add a func to do a splice from a buffered file without ITER_PIPE
      splice: Add a func to do a splice from an O_DIRECT file without ITER_PIPE
      iov_iter: Define flags to qualify page extraction.
      iov_iter: Add a function to extract a page list from an iterator
      splice: Export filemap/direct_splice_read()
      cifs: Implement splice_read to pass down ITER_BVEC not ITER_PIPE
      netfs: Add a function to extract a UBUF or IOVEC into a BVEC iterator
      netfs: Add a function to extract an iterator into a scatterlist
      cifs: Add a function to build an RDMA SGE list from an iterator
      cifs: Add a function to Hash the contents of an iterator
      cifs: Add some helper functions
      cifs: Add a function to read into an iter from a socket
      cifs: Change the I/O paths to use an iterator rather than a page list
      cifs: Build the RDMA SGE list directly from an iterator
      cifs: Remove unused code
      cifs: DIO to/from KVEC-type iterators should now work

Gustavo A. R. Silva (1):
      cifs: Replace zero-length arrays with flexible-array members

Kees Cook (3):
      cifs: Convert struct fealist away from 1-element array
      cifs: Replace remaining 1-element arrays
      smb3: Replace smb2pdu 1-element arrays with flex-arrays

Matthew Wilcox (Oracle) (2):
      cifs: Use a folio in cifs_page_mkwrite()
      filemap: Remove lock_page_killable()

Namjae Jeon (1):
      cifs: remove unneeded 2bytes of padding from smb2 tree connect

Paulo Alcantara (4):
      cifs: prevent data race in smb2_reconnect()
      cifs: get rid of unneeded conditional in cifs_get_num_sgs()
      cifs: fix mount on old smb servers
      cifs: get rid of dns resolve worker

Ronnie Sahlberg (2):
      cifs: Check the lease context if we actually got a lease
      cifs: return a single-use cfid if we did not get a lease

Shyam Prasad N (4):
      cifs: print last update time for interface list
      cifs: use the least loaded channel for sending requests
      cifs: use tcon allocation functions even for dummy tcon
      cifs: update ip_addr for ses only for primary chan setup

Stefan Metzmacher (3):
      cifs: introduce cifs_io_parms in smb2_async_writev()
      cifs: split out smb3_use_rdma_offload() helper
      cifs: don't try to use rdma offload on encrypted connections

Steve French (3):
      cifs: update Kconfig description
      cifs: fix indentation in make menuconfig options
      update internal module version number for cifs.ko

Volker Lendecke (2):
      cifs: Fix uninitialized memory read in smb3_qfs_tcon()
      cifs: Fix uninitialized memory reads for oparms.mode

Zhang Xiaoxu (2):
      cifs: Fix lost destroy smbd connection when MR allocate failed
      cifs: Fix warning and UAF when destroy the MR list

 block/bio.c               |    6 +-
 block/blk-map.c           |    8 +-
 fs/cifs/Kconfig           |   66 ++--
 fs/cifs/cached_dir.c      |   43 ++-
 fs/cifs/cifs_debug.c      |   11 +-
 fs/cifs/cifs_spnego.h     |    2 +-
 fs/cifs/cifsacl.c         |   34 +-
 fs/cifs/cifsencrypt.c     |  172 ++++++++--
 fs/cifs/cifsfs.c          |   12 +-
 fs/cifs/cifsfs.h          |    8 +-
 fs/cifs/cifsglob.h        |   81 +++--
 fs/cifs/cifspdu.h         |   98 +++---
 fs/cifs/cifsproto.h       |   11 +-
 fs/cifs/cifssmb.c         |   48 ++-
 fs/cifs/connect.c         |  179 ++++------
 fs/cifs/dir.c             |   19 +-
 fs/cifs/file.c            | 1810
+++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------
 fs/cifs/fscache.c         |   22 +-
 fs/cifs/fscache.h         |   10 +-
 fs/cifs/inode.c           |   53 +--
 fs/cifs/link.c            |   66 ++--
 fs/cifs/misc.c            |  128 +------
 fs/cifs/ntlmssp.h         |    4 +-
 fs/cifs/readdir.c         |    6 +-
 fs/cifs/sess.c            |    1 -
 fs/cifs/smb1ops.c         |   72 ++--
 fs/cifs/smb2file.c        |    2 +-
 fs/cifs/smb2inode.c       |   17 +-
 fs/cifs/smb2misc.c        |    2 +-
 fs/cifs/smb2ops.c         |  606 ++++++++++++++++-----------------
 fs/cifs/smb2pdu.c         |  291 +++++++++-------
 fs/cifs/smb2pdu.h         |    4 +-
 fs/cifs/smbdirect.c       |  539 +++++++++++++++++------------
 fs/cifs/smbdirect.h       |    7 +-
 fs/cifs/transport.c       |   87 ++---
 fs/ksmbd/smb2ops.c        |    8 +-
 fs/ksmbd/smb2pdu.c        |    6 +-
 fs/netfs/Makefile         |    1 +
 fs/netfs/iterator.c       |  371 ++++++++++++++++++++
 fs/smbfs_common/smb2pdu.h |   42 ++-
 fs/splice.c               |   93 +++++
 include/linux/fs.h        |    6 +
 include/linux/netfs.h     |    8 +
 include/linux/pagemap.h   |   10 -
 include/linux/pipe_fs_i.h |   20 ++
 include/linux/uio.h       |   35 +-
 lib/iov_iter.c            |  284 +++++++++++++++-
 mm/filemap.c              |  157 ++++++++-
 mm/internal.h             |    6 +
 mm/vmalloc.c              |    1 +
 50 files changed, 3220 insertions(+), 2353 deletions(-)
 create mode 100644 fs/netfs/iterator.c

-- 
Thanks,

Steve

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ