[SRU][jammy:linux-azure][PULL v2] Azure: Update CIFS to v6.8

John Cabaj john.cabaj at canonical.com
Fri Oct 11 15:29:15 UTC 2024


BugLink: https://bugs.launchpad.net/bugs/2082641

SRU Justification

[ Impact ]

* Microsoft has requested this patch set to update CIFS and smbfs to the 
Linux kernel version 6.8.

[ Fix ]

* Apply all clean backports from 
https://github.com/meetakshi253/azure-ubuntu-5-15 atop 
Ubuntu-azure-5.15.0-1073.82.
* Match provenance with upstream SHAs.

[ Test Plan ]

* Compile tested
* Microsoft tested

[ Regression Potential ]

* CIFs backport patch set is quite large. So the regression risk within 
CIFs is difficult to bound

[Other Info]

SF: #00397054

-------

v2: Updating two patches with no upstream (mainline) provenance to 
UBUNTU: SAUCE patches

----------------------------------------------------------------

The following changes since commit 0cad20c5c65814d449752f532377d8dba2f87d3a:

   UBUNTU: Ubuntu-azure-5.15.0-1073.82 (2024-09-02 12:25:32 +0200)

are available in the Git repository at:


git://git.launchpad.net/~john-cabaj/ubuntu/+source/linux-azure/+git/jammy 
azure-cifs

for you to fetch changes up to 8125fccede44d367aa8db99f0ec5de9f4713f88d:

   smb: client: handle path separator of created SMB symlinks 
(2024-09-26 16:04:33 -0500)

----------------------------------------------------------------
Gustavo A. R. Silva (1):
       smb: client: Fix struct_group() usage in __packed structs

Meetakshi Setiya (6):
       smb: client: fix use-after-free bug in
       smb: client: reuse file lease key in compound operations
       smb: client: do not defer close open handles to deleted files
       smb: client: retry compound request without reusing lease
       cifs: fixes for get_inode_info
       smb: client: fix double put of @cfile in smb2_set_path_size()

Namjae Jeon (1):
       ksmbd: common: use struct_group_attr instead of struct_group

Paulo Alcantara (5):
       smb: client: fix NULL ptr deref in
       smb: client: fix double put of @cfile in smb2_rename_path()
       smb: client: handle lack of FSCTL_GET_REPARSE_POINT support
       smb: client: instantiate when creating SFU files
       smb: client: handle path separator of created SMB symlinks

Shyam Prasad N (3):
       cifs: avoid redundant calls to disable multichannel
       cifs: fix stray unlock in cifs_chan_skip_or_disable
       cifs: failure to add channel on iface should bump up weight

Steve French (141):
       cifs: is_network_name_deleted should return a bool
       cifs: fix charset issue in reconnection
       cifs: update the ctime on a partial page write
       smb: client: introduce DFS_CACHE_TGT_LIST()
       smb: client: ensure to try all targets when finding nested
       smb: client: move some params to cifs_open_info_data
       smb: client: make smb2_compound_op() return resp buffer on
       smb: client: rename cifs_dfs_ref.c to namespace.c
       smb: client: get rid of dfs naming in automount code
       smb: client: get rid of dfs code dep in namespace.c
       smb: client: parse reparse point flag in create response
       smb: client: do not query reparse points twice on symlinks
       smb: client: query reparse points in older dialects
       smb: cilent: set reparse mount points as automounts
       smb: client: reduce stack usage in cifs_try_adding_channels()
       smb: client: reduce stack usage in cifs_demultiplex_thread()
       smb: client: reduce stack usage in smb_send_rqst()
       smb: client: reduce stack usage in smb2_set_ea()
       smb: client: reduce stack usage in smb2_query_info_compound()
       smb: client: reduce stack usage in smb2_query_reparse_point()
       cifs: update desired access while requesting for directory
       send channel sequence number in SMB3 requests after
       SMB3: rename macro CIFS_SERVER_IS_CHAN to avoid confusion
       cifs: Add a laundromat thread for cached directories
       smb3: allow controlling length of time directory entries are
       smb3: add trace point for queryfs (statfs)
       smb3: allow controlling maximum number of cached directories
       cifs: update internal module version number for cifs.ko
       smb3: fix minor typo in SMB2_GLOBAL_CAP_LARGE_MTU
       smb3: move server check earlier when setting channel sequence
       smb3: correct places where ENOTSUPP is used instead of
       smb3: fix some minor typos and repeated words
       smb3: Add dynamic trace points for RDMA (smbdirect) reconnect
       smb3: do not start laundromat thread when dir leases disabled
       cifs: Fix UAF in cifs_demultiplex_thread()
       smb3: remove duplicate error mapping
       smb: client: handle STATUS_IO_REPARSE_TAG_NOT_HANDLED
       smb3: fix confusing debug message
       fs/smb/client: Reset password pointer to NULL
       smb: client: do not start laundromat thread on nohandlecache
       smb: client: make laundromat a delayed worker
       smb: client: prevent new fids from being removed by
       smb3: fix touch -h of symlink
       cifs: Add client version details to NTLM authenticate message
       SMB3: clarify some of the unused CreateOption flags
       Add definition for new smb3.1.1 command type
       smb3: fix creating FIFOs when mounting with "sfu" mount
       smb: client: fix potential deadlock when releasing mids
       smb: use crypto_shash_digest() in symlink_hash()
       cifs: print server capabilities in DebugData
       cifs: add xid to query server interface call
       smb: client: remove extra @chan_count check in
       smb: client: fix use-after-free in smb2_query_info_compound()
       cifs: reconnect helper should set reconnect for the right
       cifs: do not reset chan_max if multichannel is not supported
       cifs: force interface update before a fresh session setup
       smb3: minor RDMA cleanup
       smb3: more minor cleanups for session handling routines
       cifs: handle cases where a channel is closed
       cifs: distribute channels across interfaces based on speed
       cifs: account for primary channel in the interface list
       cifs: do not pass cifs_sb when trying to add channels
       cifs: reconnect work should have reference on server struct
       smb3: minor cleanup of session handling code
       smb3: fix caching of ctime on setxattr
       smb: client: fix mount when dns_resolver key is not available
       smb3: allow dumping session and tcon id to improve stats
       Missing field not being returned in ioctl
       cifs: handle when server starts supporting multichannel
       cifs: handle when server stops supporting multichannel
       cifs: update internal module version number for cifs.ko
       cifs: spnego: add ';' in HOST_KEY_LEN
       cifs: fix check of rc in function generate_smb3signingkey
       cifs: fix leak of iface for primary channel
       cifs: fix lock ordering while disabling multichannel
       cifs: fix use after free for iface while disabling secondary
       smb: client: implement ->query_reparse_point() for SMB1
       smb: client: introduce ->parse_reparse_point()
       smb: client: set correct file type from NFS reparse points
       smb: client: introduce cifs_sfu_make_node()
       smb: client: fix missing mode bits for SMB symlinks
       smb: client: report correct st_size for SMB and NFS symlinks
       cifs: Fix FALLOC_FL_ZERO_RANGE by setting i_size if EOF moved
       cifs: Fix FALLOC_FL_INSERT_RANGE by setting i_size after EOF
       smb: client, common: fix fortify warnings
       smb: client: fix potential NULL deref in
       cifs: Fix non-availability of dedup breaking generic/304
       Revert "cifs: reconnect work should have reference on server
       cifs: reconnect worker should take reference on server struct
       smb3: add missing define
       ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE
       smb: client: fix OOB in receive_encrypted_standard()
       smb: client: fix potential OOBs in smb2_parse_contexts()
       smb: client: fix NULL deref in asn1_ber_decoder()
       smb: client: fix OOB in smb2_query_reparse_point()
       smb: client: fix OOB in cifsd when receiving compounded resps
       smb: client: fix OOB in SMB2_query_info_init()
       smb: client: fix OOB in smbCalcSize()
       smb: client: fix potential OOB in cifs_dump_detail()
       smb: client: fix potential OOB in smb2_dump_detail()
       fs: cifs: Fix atime update check
       cifs: fix a pending undercount of srv_count
       cifs: do not let cifs_chan_update_iface deallocate channels
       cifs: after disabling multichannel, mark tcon for reconnect
       cifs: cifs_chan_is_iface_active should be called with
       cifs: do not depend on release_iface for maintaining
       smb: client: Fix minor whitespace errors and warnings
       smb: client: extend smb2_compound_op() to accept more
       smb: client: allow creating special files via reparse points
       smb: client: optimise reparse point querying
       smb: client: fix renaming of reparse points
       smb: client: fix hardlinking of reparse points
       smb: client: allow creating symlinks via reparse points
       smb: client: cleanup smb2_query_reparse_point()
       smb: client: handle special files and symlinks in SMB3 POSIX
       cifs: fix in logging in cifs_chan_update_iface
       smb3: Improve exception handling in allocate_mr_list()
       smb: client: stop revalidating reparse points unnecessarily
       cifs: get rid of dup length check in parse_reparse_point()
       cifs: delete unnecessary NULL checks in
       cifs: make cifs_chan_update_iface() a void function
       cifs: remove unneeded return statement
       cifs: update internal module version number for cifs.ko
       cifs: remove redundant variable tcon_exist
       smb3: show beginning time for per share stats
       cifs: minor comment cleanup
       cifs: open_cached_dir should not rely on primary channel
       cifs: pick channel for tcon and tdis
       cifs: new nt status codes from MS-SMB2
       smb: client: fix parsing of SMB3.1.1 POSIX create context
       smb: client: parse owner/group when creating reparse points
       smb: client: get rid of smb311_posix_query_path_info()
       smb: client: don't clobber ->i_rdev from cached reparse
       cifs: reschedule periodic query for server interfaces
       cifs: new mount option called retrans
       cifs: handle servers that still advertise multichannel after
       cifs: update iface_last_update on each query-and-update
       smb: client: delete "true", "false" defines
       smb: Work around Clang __bdos() type confusion
       cifs: allow changing password during remount
       smb3: fix broken reconnect when password changing on the

  fs/cifs/Makefile                        |    5 +-
  fs/cifs/cached_dir.c                    |  188 +++--
  fs/cifs/cached_dir.h                    |    3 +-
  fs/cifs/cifs_debug.c                    |   57 +-
  fs/cifs/cifs_ioctl.h                    |    6 +
  fs/cifs/cifs_spnego.c                   |    4 +-
  fs/cifs/cifsencrypt.c                   |    2 +-
  fs/cifs/cifsfs.c                        |   21 +-
  fs/cifs/cifsfs.h                        |   15 +-
  fs/cifs/cifsglob.h                      |  149 +++-
  fs/cifs/cifspdu.h                       |   30 +-
  fs/cifs/cifsproto.h                     |   79 +-
  fs/cifs/cifssmb.c                       |  231 +++---
  fs/cifs/connect.c                       |  192 +++--
  fs/cifs/dfs.c                           |  279 ++++---
  fs/cifs/dfs.h                           |  141 +++-
  fs/cifs/dfs_cache.c                     |   10 +-
  fs/cifs/dfs_cache.h                     |   12 +-
  fs/cifs/dir.c                           |   11 +-
  fs/cifs/file.c                          |   16 +-
  fs/cifs/fs_context.c                    |   66 +-
  fs/cifs/fs_context.h                    |    9 +-
  fs/cifs/inode.c                         |  689 ++++++++++------
  fs/cifs/ioctl.c                         |   26 +
  fs/cifs/link.c                          |   45 +-
  fs/cifs/misc.c                          |   57 +-
  fs/cifs/{cifs_dfs_ref.c => namespace.c} |  126 +--
  fs/cifs/ntlmssp.h                       |    4 +-
  fs/cifs/readdir.c                       |  173 ++--
  fs/cifs/sess.c                          |  373 ++++++---
  fs/cifs/smb1ops.c                       |  173 ++--
  fs/cifs/smb2glob.h                      |   26 +-
  fs/cifs/smb2inode.c                     | 1326 
++++++++++++++++++-------------
  fs/cifs/smb2maperror.c                  |    4 +-
  fs/cifs/smb2misc.c                      |   64 +-
  fs/cifs/smb2ops.c                       |  912 ++++++++++-----------
  fs/cifs/smb2pdu.c                       |  357 +++++++--
  fs/cifs/smb2pdu.h                       |   16 +-
  fs/cifs/smb2proto.h                     |   66 +-
  fs/cifs/smb2status.h                    |    2 +
  fs/cifs/smb2transport.c                 |   17 +-
  fs/cifs/smbdirect.c                     |   13 +-
  fs/cifs/smbencrypt.c                    |    7 -
  fs/cifs/trace.h                         |   11 +-
  fs/cifs/transport.c                     |   78 +-
  fs/cifs/xattr.c                         |    5 +-
  fs/smbfs_common/smb2pdu.h               |   68 +-
  47 files changed, 3746 insertions(+), 2418 deletions(-)
  rename fs/cifs/{cifs_dfs_ref.c => namespace.c} (59%)



More information about the kernel-team mailing list