]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
smb: client: batch SRV_COPYCHUNK entries to cut round trips
authorHenrique Carvalho <henrique.carvalho@suse.com>
Sat, 4 Oct 2025 02:11:43 +0000 (23:11 -0300)
committerSteve French <stfrench@microsoft.com>
Thu, 9 Oct 2025 15:42:14 +0000 (10:42 -0500)
commit68d2e2ca1cba9259e943bcd188671b619b9770b4
tree03ef69e9cafb37aa27b9adbf399b41432bf89be7
parent1643cd51ba975f484a09bed42d1a2014c42c9e6d
smb: client: batch SRV_COPYCHUNK entries to cut round trips

smb2_copychunk_range() used to send a single SRV_COPYCHUNK per
SRV_COPYCHUNK_COPY IOCTL.

Implement variable Chunks[] array in struct copychunk_ioctl and fill it
with struct copychunk (MS-SMB2 2.2.31.1.1), bounded by server-advertised
limits.

This reduces the number of IOCTL requests for large copies.

While we are at it, rename a couple variables to follow the terminology
used in the specification.

Signed-off-by: Henrique Carvalho <henrique.carvalho@suse.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/smb2ops.c
fs/smb/client/smb2pdu.h
fs/smb/client/trace.h