ACK: [Pull Request] [Jammy linux-azure][ Azure CIFS backport from v6.8 to v5.15

Philip Cox philip.cox at canonical.com
Wed May 8 16:43:13 UTC 2024


On Wed, 2024-05-01 at 07:19 -0600, Tim Gardner wrote:
> SRU Justification
> 
> Impact:
> 
> Microsoft has requested that the 5.15 backport from the upstream 
> maintainer (Steve French) be included in Jammy linux-azure. These 
> patches upgrade CIFS to the same level as Linux v6.8.
> 
> git://git.samba.org/sfrench/cifs-2.6.git 5.15-backport-1-24-24
> 
> Test Plan:
> 
> Microsoft tested.
> 
> Regression Potential:
> 
> Regressions could include failure to connect, DNS resolution
> failures, 
> dropped connections, etc. However, Microsoft has tested these patches
> extensively since January 2024.
> 
> Other Info:
> 
> SF: #00383839
> 
> ---------------------------------------------------------------------
> The following changes since commit
> d1849442c8496357b6471a69dff420d7f4e263ae:
> 
>    UBUNTU: Ubuntu-azure-5.15.0-1064.73 (2024-04-30 08:02:51 -0600)
> 
> are available in the Git repository at:
> 
>    git://git.launchpad.net/~timg-tpi/ubuntu/+source/linux/+git/jammy 
> jammy-5.15-backport-1-24-24
> 
> for you to fetch changes up to
> ae04ba2309992798ee43dfdb94179e9df9493811:
> 
>    smb: Work around Clang __bdos() type confusion (2024-05-01
> 07:12:56 
> -0600)
> 
> ----------------------------------------------------------------
> Steve French (140):
>        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
> links
>        smb: client: move some params to cifs_open_info_data
>        smb: client: make smb2_compound_op() return resp buffer on
> success
>        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
> lease
>        send channel sequence number in SMB3 requests after reconnects
>        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 
> cached with dir leases
>        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
> number
>        smb3: correct places where ENOTSUPP is used instead of
> preferred 
> EOPNOTSUPP
>        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 laundromat
>        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 option
>        smb: client: fix potential deadlock when releasing mids
>        smb: client: fix use-after-free bug in
> cifs_debug_data_proc_show()
>        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
> __cifs_put_smb_ses()
>        smb: client: fix use-after-free in smb2_query_info_compound()
>        cifs: reconnect helper should set reconnect for the right
> channel
>        cifs: do not reset chan_max if multichannel is not supported
> at mount
>        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
> analysis 
> and debugging
>        Missing field not being returned in ioctl
> CIFS_IOC_GET_MNT_INFO
>        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
> channels
>        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
> moved
>        smb: client, common: fix fortify warnings
>        smb: client: fix potential NULL deref in parse_dfs_referrals()
>        cifs: Fix non-availability of dedup breaking generic/304
>        Revert "cifs: reconnect work should have reference on server
> struct"
>        cifs: reconnect worker should take reference on server struct 
> unconditionally
>        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
> chan_lock held
>        cifs: do not depend on release_iface for maintaining
> iface_list
>        smb: client: Fix minor whitespace errors and warnings
>        smb: client: extend smb2_compound_op() to accept more commands
>        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_chan_update_iface()
>        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 points
>        cifs: reschedule periodic query for server interfaces
>        cifs: new mount option called retrans
>        cifs: handle servers that still advertise multichannel after 
> disabling
>        cifs: update iface_last_update on each query-and-update
>        smb: client: delete "true", "false" defines
>        smb: Work around Clang __bdos() type confusion
> 
> Tim Gardner (1):
>        UBUNTU: SAUCE: cifs: correcting entry
> 
>   fs/cifs/Makefile                        |    5 +-
>   fs/cifs/cached_dir.c                    |  188 +++++++++++-----
>   fs/cifs/cached_dir.h                    |    3 +-
>   fs/cifs/cifs_debug.c                    |   53 ++++-
>   fs/cifs/cifs_ioctl.h                    |    6 +
>   fs/cifs/cifsencrypt.c                   |    2 +-
>   fs/cifs/cifsfs.c                        |   16 +-
>   fs/cifs/cifsfs.h                        |   15 +-
>   fs/cifs/cifsglob.h                      |  135 +++++++++---
>   fs/cifs/cifspdu.h                       |   30 +--
>   fs/cifs/cifsproto.h                     |   69 ++++--
>   fs/cifs/cifssmb.c                       |  227 +++++++++----------
>   fs/cifs/connect.c                       |  184 +++++++++++-----
>   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                          |   14 +-
>   fs/cifs/fs_context.c                    |   17 +-
>   fs/cifs/fs_context.h                    |    7 +-
>   fs/cifs/inode.c                         |  629 
> ++++++++++++++++++++++++++++++++--------------------
>   fs/cifs/ioctl.c                         |   26 +++
>   fs/cifs/link.c                          |   45 ++--
>   fs/cifs/misc.c                          |   18 +-
>   fs/cifs/{cifs_dfs_ref.c => namespace.c} |  126 ++++++-----
>   fs/cifs/ntlmssp.h                       |    4 +-
>   fs/cifs/readdir.c                       |  164 ++++++--------
>   fs/cifs/sess.c                          |  371 
> ++++++++++++++++++++++---------
>   fs/cifs/smb1ops.c                       |  173 ++++-----------
>   fs/cifs/smb2glob.h                      |   26 ++-
>   fs/cifs/smb2inode.c                     | 1259 
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------
> ------------------------------------
>   fs/cifs/smb2maperror.c                  |    4 +-
>   fs/cifs/smb2misc.c                      |   38 ++--
>   fs/cifs/smb2ops.c                       |  833 
> +++++++++++++++++++++++++++++++--------------------------------------
>   fs/cifs/smb2pdu.c                       |  313 +++++++++++++++++++-
> ------
>   fs/cifs/smb2pdu.h                       |   16 +-
>   fs/cifs/smb2proto.h                     |   60 +++--
>   fs/cifs/smb2status.h                    |    2 +
>   fs/cifs/smb2transport.c                 |   12 +-
>   fs/cifs/smbdirect.c                     |   13 +-
>   fs/cifs/smbencrypt.c                    |    7 -
>   fs/cifs/trace.h                         |   11 +-
>   fs/cifs/transport.c                     |   78 ++++---
>   fs/smbfs_common/smb2pdu.h               |   68 +++++-
>   45 files changed, 3384 insertions(+), 2336 deletions(-)
>   rename fs/cifs/{cifs_dfs_ref.c => namespace.c} (59%)
> 
> -- 
> -----------
> Tim Gardner
> Canonical, Inc
> 

-- 
Acked-by: Philip Cox <philip.cox at canonical.com>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20240508/4d3ff54d/attachment-0001.html>


More information about the kernel-team mailing list