Ronnie Sahlberg
9a2f6007a2
cifs: do not fail __smb_send_rqst if non-fatal signals are pending
...
commit 214a5ea081e77346e4963dd6d20c5539ff8b6ae6 upstream.
RHBZ 1848178
The original intent of returning an error in this function
in the patch:
"CIFS: Mask off signals when sending SMB packets"
was to avoid interrupting packet send in the middle of
sending the data (and thus breaking an SMB connection),
but we also don't want to fail the request for non-fatal
signals even before we have had a chance to try to
send it (the reported problem could be reproduced e.g.
by exiting a child process when the parent process was in
the midst of calling futimens to update a file's timestamps).
In addition, since the signal may remain pending when we enter the
sending loop, we may end up not sending the whole packet before
TCP buffers become full. In this case the code returns -EINTR
but what we need here is to return -ERESTARTSYS instead to
allow system calls to be restarted.
Fixes: b30c74c73c ("CIFS: Mask off signals when sending SMB packets")
Cc: stable@vger.kernel.org # v5.1+
Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-01-27 11:47:49 +01:00
..
9p
9P: Cast to loff_t before multiplying
2020-11-05 11:43:34 +01:00
adfs
affs
affs: fix basic permission bits to actually work
2020-09-09 19:12:34 +02:00
afs
afs: Fix memory leak when mounting with multiple source parameters
2020-12-30 11:50:54 +01:00
autofs
befs
bfs
bfs: don't use WARNING: string when it's just info.
2021-01-06 14:48:39 +01:00
btrfs
btrfs: send: fix invalid clone operations when cloning from the same file and root
2021-01-27 11:47:41 +01:00
cachefiles
cachefiles: Handle readpage error correctly
2020-11-05 11:43:36 +01:00
ceph
ceph: fix race in concurrent __ceph_remove_cap invocations
2020-12-30 11:51:40 +01:00
cifs
cifs: do not fail __smb_send_rqst if non-fatal signals are pending
2021-01-27 11:47:49 +01:00
coda
configfs
configfs: fix config_item refcnt leak in configfs_rmdir()
2020-05-27 17:46:30 +02:00
cramfs
crypto
fscrypt: remove kernel-internal constants from UAPI header
2021-01-06 14:48:35 +01:00
debugfs
debugfs: Fix module state check condition
2020-09-17 13:47:55 +02:00
devpts
dlm
fs: dlm: fix configfs memory leak
2020-10-29 09:58:03 +01:00
ecryptfs
ecryptfs: replace BUG_ON with error handling code
2020-02-28 17:22:26 +01:00
efivarfs
efivarfs: revert "fix memory leak in efivarfs_create()"
2020-12-02 08:49:53 +01:00
efs
erofs
erofs: avoid using generic_block_bmap
2020-12-30 11:51:23 +01:00
exportfs
ext2
ext2: don't update mtime on COW faults
2020-09-09 19:12:30 +02:00
ext4
ext4: fix superblock checksum failure when setting password salt
2021-01-19 18:26:17 +01:00
f2fs
f2fs: avoid race condition for shrinker count
2021-01-06 14:48:40 +01:00
fat
fat: don't allow to mount if the FAT length == 0
2020-06-17 16:40:36 +02:00
freevxfs
fscache
fuse
fuse: fix bad inode
2021-01-09 13:44:54 +01:00
gfs2
gfs2: check for empty rgrp tree in gfs2_ri_update
2020-12-11 13:23:32 +01:00
hfs
hfsplus
hfsplus: fix crash and filesystem corruption when deleting files
2020-04-17 10:50:22 +02:00
hostfs
hpfs
hugetlbfs
hugetlbfs: prevent filesystem stacking of hugetlbfs
2020-09-03 11:26:48 +02:00
iomap
iomap: fix WARN_ON_ONCE() from unprivileged users
2020-10-29 09:58:06 +01:00
isofs
jbd2
jbd2: fix up sparse warnings in checkpoint code
2020-11-18 19:20:30 +01:00
jffs2
jffs2: Fix NULL pointer dereference in rp_size fs option parsing
2021-01-06 14:48:37 +01:00
jfs
jfs: Fix array index bounds check in dbAdjTree
2020-12-30 11:51:40 +01:00
kernfs
kernfs: do not call fsnotify() with name without a parent
2020-08-19 08:16:12 +02:00
lockd
lockd: don't use interval-based rebinding over TCP
2020-12-30 11:51:16 +01:00
minix
fs/minix: remove expected error message in block_to_path()
2020-08-21 13:05:37 +02:00
nfs
NFS: nfs_igrab_and_active must first reference the superblock
2021-01-19 18:26:17 +01:00
nfs_common
nfs_common: need lock during iterate through the list
2020-12-30 11:51:22 +01:00
nfsd
nfsd4: readdirplus shouldn't return parent of export
2021-01-23 15:57:56 +01:00
nilfs2
nilfs2: fix null pointer dereference at nilfs_segctor_do_construct()
2020-06-17 16:40:29 +02:00
nls
notify
fanotify: fix ignore mask logic for events on child and on dir
2020-06-17 16:40:24 +02:00
ntfs
ntfs: add check for mft record size in superblock
2020-10-29 09:58:03 +01:00
ocfs2
ocfs2: initialize ip_next_orphan
2020-11-18 19:20:30 +01:00
omfs
openpromfs
orangefs
orangefs: get rid of knob code...
2020-08-21 13:05:29 +02:00
overlayfs
ovl: fix unneeded call to ovl_change_flags()
2020-07-22 09:33:12 +02:00
proc
proc: fix lookup in /proc/net subdirectories after setns(2)
2021-01-12 20:16:10 +01:00
pstore
pstore: Fix linking when crypto API disabled
2020-08-19 08:16:27 +02:00
qnx4
qnx6
quota
quota: Don't overflow quota file offsets
2021-01-06 14:48:39 +01:00
ramfs
ramfs: fix nommu mmap with gaps in the page cache
2020-10-29 09:57:53 +01:00
reiserfs
reiserfs: add check for an invalid ih_entry_count
2021-01-06 14:48:38 +01:00
romfs
romfs: fix uninitialized memory leak in romfs_dev_read()
2020-08-26 10:40:51 +02:00
squashfs
sysfs
sysv
tracefs
ubifs
ubifs: prevent creating duplicate encrypted filenames
2021-01-06 14:48:35 +01:00
udf
udf: Fix memory leak when mounting
2020-11-05 11:43:29 +01:00
ufs
fs/ufs: avoid potential u32 multiplication overflow
2020-08-21 13:05:37 +02:00
unicode
verity
xfs
xfs: revert "xfs: fix rmap key and record comparison functions"
2020-11-24 13:29:18 +01:00
aio.c
aio: fix async fsync creds
2020-06-17 16:40:24 +02:00
anon_inodes.c
attr.c
utimes: Clamp the timestamps in notify_change()
2020-02-11 04:35:12 -08:00
bad_inode.c
binfmt_aout.c
binfmt_elf.c
fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()
2020-06-03 08:21:27 +02:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_flat: revert "binfmt_flat: don't offset the data start"
2020-09-03 11:26:39 +02:00
binfmt_misc.c
binfmt_script.c
block_dev.c
bdev: Reduce time holding bd_mutex in sync in blkdev_close()
2020-10-01 13:17:55 +02:00
buffer.c
fs: Don't invalidate page buffers in block_write_full_page()
2020-11-05 11:43:24 +01:00
char_dev.c
chardev: Avoid potential use-after-free in 'chrdev_open()'
2020-01-14 20:08:18 +01:00
compat.c
compat_binfmt_elf.c
compat_ioctl.c
fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
2020-01-09 10:20:05 +01:00
coredump.c
coredump: fix core_pattern parse error
2020-12-11 13:23:30 +01:00
d_path.c
fs: fix NULL dereference due to data race in prepend_path()
2020-10-29 09:57:45 +01:00
dax.c
dax: pass NOWAIT flag to iomap_apply
2020-03-05 16:43:36 +01:00
dcache.c
fix dget_parent() fastpath race
2020-10-01 13:17:19 +02:00
dcookies.c
direct-io.c
drop_caches.c
fs: avoid softlockups in s_inodes iterators
2020-01-12 12:21:37 +01:00
eventfd.c
eventfd: track eventfd_signal() recursion depth
2020-02-11 04:35:37 -08:00
eventpoll.c
ep_create_wakeup_source(): dentry name can change under you...
2020-10-07 08:01:31 +02:00
exec.c
exec: Transform exec_update_mutex into a rw_semaphore
2021-01-09 13:44:55 +01:00
fcntl.c
fcntl: Fix potential deadlock in send_sig{io, urg}()
2021-01-06 14:48:39 +01:00
fhandle.c
file.c
fix multiplication overflow in copy_fdtable()
2020-05-27 17:46:12 +02:00
file_table.c
filesystems.c
fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
2020-04-17 10:50:21 +02:00
fs-writeback.c
writeback: Fix sync livelock due to b_dirty_time processing
2020-09-03 11:27:04 +02:00
fs_context.c
fs_parser.c
fs_pin.c
fs_struct.c
fs_types.c
fsopen.c
inode.c
futex: Fix inode life-time issue
2020-03-25 08:25:58 +01:00
internal.h
fs: move guard_bio_eod() after bio_set_op_attrs
2020-01-17 19:48:21 +01:00
io_uring.c
io_uring: Fix double list add in io_queue_async_work()
2020-10-14 10:32:57 +02:00
ioctl.c
Kconfig
Kconfig.binfmt
libfs.c
libfs: fix error cast of negative value in simple_attr_write()
2020-11-24 13:29:19 +01:00
locks.c
locks: reinstate locks_delete_block optimization
2020-03-25 08:25:41 +01:00
Makefile
mbcache.c
mount.h
mpage.c
fs: move guard_bio_eod() after bio_set_op_attrs
2020-01-17 19:48:21 +01:00
namei.c
namei: only return -ECHILD from follow_dotdot_rcu()
2020-03-05 16:43:48 +01:00
namespace.c
fs/namespace.c: WARN if mnt_count has become negative
2021-01-06 14:48:40 +01:00
no-block.c
nsfs.c
open.c
cifs_atomic_open(): fix double-put on late allocation failure
2020-03-18 07:17:51 +01:00
pipe.c
pnode.c
propagate_one(): mnt_set_mountpoint() needs mount_lock
2020-05-02 08:48:44 +02:00
pnode.h
fs/namespace.c: WARN if mnt_count has become negative
2021-01-06 14:48:40 +01:00
posix_acl.c
proc_namespace.c
read_write.c
fs: allow deduplication of eof block into the end of the destination file
2020-02-11 04:35:23 -08:00
readdir.c
readdir: be more conservative with directory entry names
2020-01-29 16:45:31 +01:00
select.c
seq_file.c
signalfd.c
fs/signalfd.c: fix inconsistent return codes for signalfd4
2020-08-26 10:40:58 +02:00
splice.c
stack.c
stat.c
statfs.c
super.c
vfs: remove lockdep bogosity in __sb_start_write
2020-11-24 13:29:01 +01:00
sync.c
timerfd.c
userfaultfd.c
utimes.c
utimes: Clamp the timestamps in notify_change()
2020-02-11 04:35:12 -08:00
xattr.c
xattr: break delegations in {set,remove}xattr
2020-08-11 15:33:39 +02:00