linux/fs/smb/client
Christian Brauner d0ae35565f
smb: prevent TIF_NOTIFY_SIGNAL from interrupting
smb blocks every signal during some sends:

	sigfillset(&mask);
	sigprocmask(SIG_BLOCK, &mask, &oldmask);

An incomplete or partial send would cause the connection to become out
of sync. That in turn would cause the session to be torn down and
reconnected.

In commit 00be6f26a2 ("smb: client: transport: avoid reconnects
triggered by pending task work") smb hand-rolled its own solution. Have
it use the new no_notify_signal_save() critical section instead.

This stops io_uring from cancelling a send in flight but that's just
like it is today and it is bounded by sk_sndtimeo at around 15s.

Link: https://patch.msgid.link/20260824-work-tif_notify_signal-v2-4-6609e42b3157@kernel.org
Acked-by: Paulo Alcantara <pc@manguebit.org>
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-08-31 10:05:13 +02:00
..
.gitignore smb/client: autogenerate SMB1 DOS/SRV to POSIX error mapping 2026-04-05 19:58:40 -05:00
asn1.c
cached_dir.c cifs: abort open_cached_dir if we don't request leases 2026-05-03 21:06:02 -05:00
cached_dir.h smb: client: fix (remove) drop_dir_cache module parameter 2026-04-22 09:54:21 -05:00
cifs_debug.c cifs: fix clearing stats for fastest execution of each smb2 command 2026-08-24 17:08:52 -03:00
cifs_debug.h cifs: SMB1 split: cifs_debug.c 2026-02-08 17:07:45 -06:00
cifs_fs_sb.h smb: client: fix busy dentry warning on unmount after DIO 2026-07-08 18:44:42 -05:00
cifs_ioctl.h smb: client: use atomic_t for mnt_cifs_flags 2026-02-26 18:17:08 -06:00
cifs_spnego_negtokeninit.asn1
cifs_spnego.c smb: client: reject userspace cifs.spnego descriptions 2026-05-19 10:43:05 -05:00
cifs_spnego.h cifs: Scripted clean up fs/smb/client/cifs_spnego.h 2026-02-08 17:07:44 -06:00
cifs_swn.c smb: client: use GFP_KERNEL for registry allocation 2026-07-26 17:40:20 -05:00
cifs_swn.h cifs: Scripted clean up fs/smb/client/cifs_swn.h 2026-02-08 17:07:44 -06:00
cifs_unicode.c smb: client: Remove obsolete cmac(aes) allocation 2026-04-22 09:56:10 -05:00
cifs_unicode.h smb: client: use atomic_t for mnt_cifs_flags 2026-02-26 18:17:08 -06:00
cifsacl.c cifs: validate idmap key payload length 2026-07-26 17:40:20 -05:00
cifsacl.h
cifsencrypt.c smb: client: Clear sensitive stack data in cifsencrypt.c 2026-08-24 17:08:53 -03:00
cifsfs.c cifs: fix loff_t underflow in cifs_remap_file_range() when len == 0 2026-08-24 17:08:53 -03:00
cifsfs.h There are thirty-three client fixes: 2026-08-24 18:11:49 -07:00
cifsglob.h cifs: prevent readdir from changing file size due to stale directory metadata 2026-07-21 20:19:03 -05:00
cifspdu.h cifs: SMB1 split: Move BCC access functions 2026-02-08 17:07:45 -06:00
cifsproto.h cifs: Show reason why autodisabling serverino support 2026-07-09 08:03:19 -05:00
cifsroot.c
cifssmb.c smb: client: reject a tree connect response whose byte count is too small 2026-08-24 17:08:53 -03:00
compress.c smb: move LZ77 compression into common code 2026-06-16 18:57:21 -05:00
compress.h smb: move LZ77 compression into common code 2026-06-16 18:57:21 -05:00
connect.c smb: client: Avoid leaking sensitive data to the heap in connect.c 2026-08-24 17:08:53 -03:00
dfs_cache.c smb: client: clear ce->tgthint in free_tgts() 2026-08-19 12:30:22 -03:00
dfs_cache.h cifs: Scripted clean up fs/smb/client/dfs_cache.h 2026-02-08 17:07:44 -06:00
dfs.c
dfs.h Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
dir.c There are thirty-three client fixes: 2026-08-24 18:11:49 -07:00
dns_resolve.c
dns_resolve.h cifs: Scripted clean up fs/smb/client/dns_resolve.h 2026-02-08 17:07:44 -06:00
export.c
file.c mm.git review status for linus..mm-stable 2026-08-27 09:17:06 -07:00
fs_context.c 14 smb3 client fixes 2026-06-18 09:18:00 -07:00
fs_context.h smb: client: allow both 'lease' and 'nolease' mount options 2026-04-13 09:14:54 -05:00
fscache.c smb: client: simplify cifs_fscache_get_super_cookie() 2026-07-27 18:12:16 -05:00
fscache.h cifs: SMB1 split: Separate out SMB1 decls into smb1proto.h 2026-02-08 17:07:45 -06:00
gen_smb1_mapping smb/client: autogenerate SMB1 DOS/SRV to POSIX error mapping 2026-04-05 19:58:40 -05:00
gen_smb2_mapping cifs: Autogenerate SMB2 error mapping table 2026-02-08 21:23:53 -06:00
inode.c There are thirty-three client fixes: 2026-08-24 18:11:49 -07:00
ioctl.c smb: client: remove redundant NULL check before kfree() 2026-08-24 17:08:53 -03:00
Kconfig 18 ksmbd server fixes 2026-04-23 17:04:18 -07:00
link.c smb/client: zero-initialize stack-allocated cifs_open_info_data 2026-07-09 07:55:55 -05:00
Makefile smb: move LZ77 compression into common code 2026-06-16 18:57:21 -05:00
misc.c cifs: consolidate time_last_write stamp into _cifsFileInfo_put() 2026-07-27 19:37:59 -05:00
namespace.c cifs: Implement fileattr_get for case sensitivity 2026-05-11 16:50:29 +02:00
netlink.c smb: client: require net admin for CIFS SWN netlink 2026-05-21 11:15:17 -05:00
netlink.h cifs: Scripted clean up fs/smb/client/netlink.h 2026-02-08 17:07:44 -06:00
netmisc.c cifs: SMB1 split: netmisc.c 2026-02-08 17:07:45 -06:00
nterr.h smb/client: replace nt_errs with ntstatus_to_dos_map 2026-04-05 19:58:40 -05:00
ntlmssp.h cifs: Scripted clean up fs/smb/client/ntlmssp.h 2026-02-08 17:07:45 -06:00
readdir.c smb: client: bound dirent name against end of SMB response in cifs_filldir 2026-07-19 22:33:38 -05:00
reparse.c smb: client: preserve leading slash for POSIX absolute symlink targets 2026-07-06 07:59:14 -05:00
reparse.h smb/client: decode reparse metadata using its payload type 2026-08-24 17:08:53 -03:00
rfc1002pdu.h smb: fix some warnings reported by scripts/checkpatch.pl 2025-11-30 21:11:45 -06:00
sess.c smb: client: Fix use-after-free in cifs_try_adding_channels() 2026-08-02 20:21:22 -05:00
smb1debug.c cifs: SMB1 split: cifs_debug.c 2026-02-08 17:07:45 -06:00
smb1encrypt.c smb: client: Clear sensitive stack data in smb1encrypt.c 2026-08-24 17:08:53 -03:00
smb1maperror_test.c smb/client: Use EXPORT_SYMBOL_IF_KUNIT() to export symbols 2026-07-14 21:48:00 -05:00
smb1maperror.c smb: client: remove conditional return with no effect 2026-07-26 17:40:20 -05:00
smb1misc.c smb: client: restore the data_offset bound in is_valid_oplock_break() 2026-08-24 17:08:53 -03:00
smb1ops.c smb: client: fix copy-paste error in WSL EA length accounting for $LXDEV 2026-08-24 17:08:53 -03:00
smb1pdu.h smb: move compression definitions into common/fscc.h 2026-06-16 18:57:21 -05:00
smb1proto.h smb/client: allow FS_IOC_SETFLAGS to clear compression 2026-06-14 15:12:23 -05:00
smb1session.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
smb1transport.c smb: client: fix UAF and buffer leak in cifs_check_trans2() for malformed secondary T2 2026-08-24 17:08:53 -03:00
smb2file.c smb: client: fix ALIGN() overflow in symlink_data() error context loop 2026-08-24 17:08:53 -03:00
smb2glob.h smb/client: make SMB2 maperror KUnit tests a separate module 2026-03-01 17:59:52 -06:00
smb2inode.c smb: client: fix use-before-check of ReparseDataLength in reparse_buf_ptr() 2026-08-24 17:08:53 -03:00
smb2maperror_test.c smb/client: Use EXPORT_SYMBOL_IF_KUNIT() to export symbols in SMB2 2026-07-14 21:51:19 -05:00
smb2maperror.c smb/client: Use EXPORT_SYMBOL_IF_KUNIT() to export symbols in SMB2 2026-07-14 21:51:19 -05:00
smb2misc.c smb: client: reject overlapping data areas in SMB2 responses 2026-07-13 10:37:55 -05:00
smb2ops.c smb: client: Clear sensitive stack and heap data in smb2ops.c 2026-08-24 17:08:53 -03:00
smb2pdu.c smb/client: preserve open info type across compound queries 2026-08-24 17:08:52 -03:00
smb2pdu.h ksmbd: add SMB Direct RDMA encryption transform 2026-08-17 22:38:25 +09:00
smb2proto.h smb/client: refresh allocation after EOF-extending fallocate 2026-07-13 10:37:55 -05:00
smb2transport.c There are thirty-three client fixes: 2026-08-24 18:11:49 -07:00
smbdirect.c smb: smbdirect: introduce and use include/linux/smbdirect.h 2026-05-01 16:24:25 -05:00
smbdirect.h smb: smbdirect: introduce and use include/linux/smbdirect.h 2026-05-01 16:24:25 -05:00
smbencrypt.c cifs: SMB1 split: Adjust #includes 2026-02-08 17:07:45 -06:00
smberr.h smb/client: introduce KUnit tests to check DOS/SRV err mapping search 2026-04-05 19:58:40 -05:00
trace.c smb: client: Add tracepoint for krb5 auth 2025-12-05 17:40:42 -06:00
trace.h smb: client: reject a tree connect response whose byte count is too small 2026-08-24 17:08:53 -03:00
transport.c smb: prevent TIF_NOTIFY_SIGNAL from interrupting 2026-08-31 10:05:13 +02:00
unc.c
winucase.c
xattr.c smb/client: clean up a type issue in cifs_xattr_get() 2026-06-14 15:12:24 -05:00