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

John Cabaj john.cabaj at canonical.com
Thu Oct 17 14:12:01 UTC 2024


Guoqing,

Noted on some of the descriptions. The backports in this pull request 
are directly from Microsoft, so I can attempt to pull these select few 
from mainline if the content is exactly the same, but I tend to defer to 
the backport as the CIFs maintainer gives us the backport directly.

I can also clean up the SAUCE patch if, again, the upstream is exactly 
the same.


Thanks,
John

On 10/16/24 11:09 PM, Guoqing Jiang wrote:
> Hi,
> 
> Just some nit-picks about patch descriptions.
> 
> On 10/11/24 23:29, 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
>>
>> -------
>>
>> 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
> 
> Nit, the subject doesn't match with mainline one which is
> smb: client: fix use-after-free bug in cifs_debug_data_proc_show()
> 
>>       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
> 
> I checked the link
> https://git.launchpad.net/~john-cabaj/ubuntu/+source/linux-azure/+git/ 
> jammy/commit/?h=azure-cifs&id=aa7ca61a6a5fc3bd16aa00d055765a7e8de5241a
> 
> IMO, the above one is same as the mainline commit 2da338ff752a, if so,
> no need add SAUCE and add cherry pick information for it.
> 
>>       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
> 
> The relevant mainline subject is
> "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
> 
> The above subject doesn't match mainline one which is
> "smb3: fix creating FIFOs when mounting with "sfu" mount option"
> 
>>       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
> 
> The mainline subject is "cifs: reconnect helper should set reconnect for 
> the right channel"
> 
>>       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
> 
> The subject of mainline commit is
> "smb3: allow dumping session and tcon id to improve stats analysis and 
> debugging"
> 
>>       Missing field not being returned in ioctl
> 
> The subject of mainline commit is
> "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
> 
> The subject of mainline commit is
> "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
> 
> The subject of mainline commit is
> "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
> 
> The subject of mainline commit is
> "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
> 
> The subject of mainline commit is
> "Revert "cifs: reconnect work should have reference on server struct""
> 
>> cifs: reconnect worker should take reference on server struct
> 
> The subject of mainline commit is
> "cifs: reconnect worker should take reference on server struct 
> unconditionally"
> 
>>
>>       smb3: add missing define
> 
> Looks the above change was include in mainline commit d47d9886aeef
> ("ksmbd: send v2 lease break notification for directory"), if only the 
> definition
> is needed in jammy:linux-azure, maybe it is better to add some 
> descriptions.
> 
>>       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
> 
> The subject of mainline commit is
> "cifs: cifs_chan_is_iface_active should be called with chan_lock held"
> 
>>
>>       cifs: do not depend on release_iface for maintaining
> 
> The subject of mainline commit is
> "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
>>       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
> 
> The subject of mainline commit is
> "smb3: fix broken reconnect when password changing on the server by 
> allowing password rotation"
> 
> Thanks,
> Guoqing




More information about the kernel-team mailing list