linux/fs/smb/client
David Howells dc1a456dc1 cifs: Fix cifs readv callback merge resolution issue
Fix an upstream merge resolution issue[1].  Prior to the netfs read
healpers, the SMB1 asynchronous read callback, cifs_readv_worker()
performed the cleanup for the operation in the network message processing
loop, potentially slowing down the processing of incoming SMB messages.

With commit a68c74865f ("cifs: Fix SMB1 readv/writev callback in the same
way as SMB2/3"), this was moved to a worker thread (as is done in the
SMB2/3 transport variant).  However, the "was_async" argument to
netfs_subreq_terminated (which was originally incorrectly "false" got
flipped to "true" - which was then incorrect because, being in a kernel
thread, it's not in an async context).

This got corrected in the sample merge[2], but Linus, not unreasonably,
switched it back to its previous value.

Note that this value tells netfslib whether or not it can run sleepable
stuff or stuff that takes a long time, such as retries and cleanups, in the
calling thread, or whether it should offload to a worker thread.

Fix this so that it is "false".  The callback to netfslib in both SMB1 and
SMB2/3 now gets offloaded from the network message thread to a separate
worker thread and thus it's fine to do the slow work in this thread.

Fixes: 35219bc5c7 ("Merge tag 'vfs-6.12.netfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Steve French <stfrench@microsoft.com>
cc: Paulo Alcantara <pc@manguebit.com>
cc: Christian Brauner <brauner@kernel.org>
cc: Jeff Layton <jlayton@kernel.org>
cc: linux-cifs@vger.kernel.org
cc: netfs@lists.linux.dev
cc: linux-fsdevel@vger.kernel.org
Link: https://lore.kernel.org/r/CAHk-=wjr8fxk20-wx=63mZruW1LTvBvAKya1GQ1EhyzXb-okMA@mail.gmail.com/ [1]
Link: https://lore.kernel.org/linux-fsdevel/20240913-vfs-netfs-39ef6f974061@brauner/ [2]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2024-09-16 16:13:41 +02:00
..
asn1.c
cached_dir.c smb3: fix Open files on server counter going negative 2024-04-11 16:02:02 -05:00
cached_dir.h smb: client: make laundromat a delayed worker 2023-10-12 09:41:04 -05:00
cifs_debug.c smb3: fix setting SecurityFlags when encryption is required 2024-08-08 11:14:53 -05:00
cifs_debug.h
cifs_fs_sb.h
cifs_ioctl.h smb3: allow dumping session and tcon id to improve stats analysis and debugging 2023-11-10 02:00:30 -06:00
cifs_spnego_negtokeninit.asn1
cifs_spnego.c cifs: spnego: add ';' in HOST_KEY_LEN 2023-11-13 16:21:34 -06:00
cifs_spnego.h
cifs_swn.c
cifs_swn.h
cifs_unicode.c fs/smb/client: Use common code in client 2023-08-30 08:55:52 -05:00
cifs_unicode.h fs/smb/client: Use common code in client 2023-08-30 08:55:52 -05:00
cifsacl.c
cifsacl.h
cifsencrypt.c cifs: Fix signature miscalculation 2024-09-12 19:28:48 -05:00
cifsfs.c cifs: Fix copy offload to flush destination region 2024-08-28 07:48:33 -05:00
cifsfs.h cifs: update internal version number 2024-08-02 10:56:14 -05:00
cifsglob.h cifs: Switch crypto buffer to use a folio_queue rather than an xarray 2024-09-12 12:20:42 +02:00
cifspdu.h cifs: fix creating sockets when using sfu mount options 2024-05-31 10:55:15 -05:00
cifsproto.h cifs: Remove cifs_aio_ctx 2024-08-02 10:55:45 -05:00
cifsroot.c
cifssmb.c cifs: Fix cifs readv callback merge resolution issue 2024-09-16 16:13:41 +02:00
connect.c smb: client: fix hang in wait_for_response() for negproto 2024-09-02 20:00:04 -05:00
dfs_cache.c smb: client: refresh referral without acquiring refpath_lock 2024-04-02 10:11:43 -05:00
dfs_cache.h smb: client: ensure to try all targets when finding nested links 2023-08-20 16:05:50 -05:00
dfs.c smb: client: guarantee refcounted children from parent session 2024-04-02 10:09:57 -05:00
dfs.h smb: client: guarantee refcounted children from parent session 2024-04-02 10:09:57 -05:00
dir.c cifs: Fix caching to try to do open O_WRONLY as rdwr on server 2024-04-02 09:29:55 -05:00
dns_resolve.c
dns_resolve.h
export.c exportfs: make ->encode_fh() a mandatory method for NFS export 2023-10-28 16:15:15 +02:00
file.c netfs: Speed up buffered reading 2024-09-12 12:20:41 +02:00
fs_context.c smb: client: Convert to new uid/gid option parsing helpers 2024-07-02 06:21:20 +02:00
fs_context.h cifs: reinstate original behavior again for forceuid/forcegid 2024-04-22 10:50:31 -05:00
fscache.c cifs: Remove some code that's no longer used, part 1 2024-05-01 18:08:21 +01:00
fscache.h cifs: Remove some code that's no longer used, part 1 2024-05-01 18:08:21 +01:00
inode.c cifs: Fix zero_point init on inode initialisation 2024-09-03 10:16:05 -05:00
ioctl.c smb3: fix problem unloading module due to leaked refcount on shutdown 2024-08-22 12:36:57 -05:00
Kconfig cifs: Implement netfslib hooks 2024-05-01 18:08:21 +01:00
link.c smb3: fix problem unloading module due to leaked refcount on shutdown 2024-08-22 12:36:57 -05:00
Makefile smb: client: move most of reparse point handling code to common file 2024-03-10 19:33:57 -05:00
misc.c cifs: cifs_inval_name_dfs_link_error: correct the check for fullpath 2024-08-08 20:06:22 -05:00
namespace.c smb: client: set correct id, uid and cruid for multiuser automounts 2024-02-12 12:46:49 -06:00
netlink.c
netlink.h
netmisc.c
nterr.c
nterr.h
ntlmssp.h cifs: Add client version details to NTLM authenticate message 2023-10-22 19:03:42 -05:00
readdir.c smb: client: parse uid, gid, mode and dev from WSL reparse points 2024-03-10 19:33:58 -05:00
reparse.c smb: client: ignore unhandled reparse tags 2024-08-22 12:37:16 -05:00
reparse.h smb: client: handle lack of FSCTL_GET_REPARSE_POINT support 2024-08-02 10:55:22 -05:00
rfc1002pdu.h
sess.c cifs: reduce warning log level for server not advertising interfaces 2024-03-14 13:54:27 -05:00
smb1ops.c cifs: Add a tracepoint to track credits involved in R/W requests 2024-07-19 11:08:57 -05:00
smb2file.c smb/client: adapt to breakup of struct file_lock 2024-02-05 13:11:44 +01:00
smb2glob.h smb: client: introduce SMB2_OP_QUERY_WSL_EA 2024-03-10 19:33:58 -05:00
smb2inode.c smb: client: fix double put of @cfile in smb2_set_path_size() 2024-09-03 10:06:48 -05:00
smb2maperror.c cifs: new nt status codes from MS-SMB2 2024-01-18 21:01:04 -06:00
smb2misc.c cifs: Add tracing for the cifs_tcon struct refcounting 2024-04-19 16:02:09 -05:00
smb2ops.c vfs-6.12.netfs 2024-09-16 12:13:31 +02:00
smb2pdu.c netfs: Speed up buffered reading 2024-09-12 12:20:41 +02:00
smb2pdu.h smb: smb2pdu.h: Avoid -Wflex-array-member-not-at-end warnings 2024-05-13 16:46:56 -05:00
smb2proto.h cifs: Cut over to using netfslib 2024-05-01 18:08:21 +01:00
smb2status.h cifs: new nt status codes from MS-SMB2 2024-01-18 21:01:04 -06:00
smb2transport.c smb: client: fix deadlock in smb2_find_smb_tcon() 2024-06-07 01:05:07 -05:00
smbdirect.c cifs: Don't support ITER_XARRAY 2024-09-12 12:20:42 +02:00
smbdirect.h
smbencrypt.c smb: client: delete "true", "false" defines 2024-01-23 12:41:02 -06:00
smberr.h
trace.c
trace.h cifs: Fix lack of credit renegotiation on read retry 2024-08-28 07:47:36 -05:00
transport.c Fix spelling errors in Server Message Block 2024-08-08 11:15:33 -05:00
unc.c
winucase.c
xattr.c smb3: fix caching of ctime on setxattr 2023-11-09 10:25:58 -06:00