NACK: [SRU][jammy:linux-azure][PULL] Azure: Update CIFS to v6.8
John Cabaj
john.cabaj at canonical.com
Thu Oct 10 20:04:31 UTC 2024
On 10/10/24 2:37 PM, Magali Lemes wrote:
> Comments inline about missing provenance lines in a couple of patches.
> Let me know if that is expected somehow and I can un-NACK this.
>
> On 07/10/2024 11:20, John Cabaj wrote:
>> 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
>>
>> ----------------------------------------------------------------
>>
>> 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 53d5451f0c69a3faddfdcb77d5d153f77539e857:
>>
>> 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
>
> This one lacks a `cherry picked from` line. I could find it only in
> linux-6.5.y.
>
>> 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
>
> This one also lacks a `cherry picked from` line but I couldn't find it
> in any upstream trees, so I suppose it'd be a SAUCE patch?
Right, this is a similar case to some CIFs patches we already have in
jammy:linux-azure (eg.
https://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-azure/+git/jammy/commit/fs/cifs?h=master-next&id=131ea1ed3322c6ec06eb8f276f226c8a1f3bbf1b).
timg-tpi largely scripted this by looking for upstream commits to match
provenance from backport patches provided by the CIFs maintainers
specifically for Ubuntu. I should change the script to add "UBUNTU:
SAUCE" to any commits that don't have a match. I'll do that and update
the PR.
Appreciate you being so thorough.
John
>
>> 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