Ronnie Sahlberg
f0fff9a77e
cifs: Fix a race condition with cifs_echo_request
...
[ Upstream commit f2caf901c1b7ce65f9e6aef4217e3241039db768 ]
There is a race condition with how we send (or supress and don't send)
smb echos that will cause the client to incorrectly think the
server is unresponsive and thus needs to be reconnected.
Summary of the race condition:
1) Daisy chaining scheduling creates a gap.
2) If traffic comes unfortunate shortly after
the last echo, the planned echo is suppressed.
3) Due to the gap, the next echo transmission is delayed
until after the timeout, which is set hard to twice
the echo interval.
This is fixed by changing the timeouts from 2 to three times the echo interval.
Detailed description of the bug: https://lutz.donnerhacke.de/eng/Blog/Groundhog-Day-with-SMB-remount
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: Sasha Levin <sashal@kernel.org>
2020-05-20 08:15:34 +02:00
..
9p
9p: avoid attaching writeback_fid on mmap with type PRIVATE
2019-10-17 13:42:10 -07:00
adfs
fs/adfs: super: fix use-after-free bug
2019-08-06 18:29:35 +02:00
affs
affs_lookup(): close a race with affs_remove_link()
2018-05-30 07:50:16 +02:00
afs
afs: Fix large file support
2020-01-29 10:24:34 +01:00
autofs4
autofs: fix a leak in autofs_expire_indirect()
2019-12-21 10:40:46 +01:00
befs
befs fixes for 4.9-rc1
2016-10-15 12:09:13 -07:00
bfs
bfs: add sanity check at bfs_fill_super()
2018-12-01 09:44:19 +01:00
btrfs
btrfs: fix block group leak when removing fails
2020-05-05 19:14:31 +02:00
cachefiles
fscache, cachefiles: remove redundant variable 'cache'
2018-12-17 09:38:34 +01:00
ceph
ceph: don't skip updating wanted caps when cap is stale
2020-05-02 17:23:03 +02:00
cifs
cifs: Fix a race condition with cifs_echo_request
2020-05-20 08:15:34 +02:00
coda
coda: add error handling for fget
2019-08-06 18:29:38 +02:00
configfs
configfs: fix a deadlock in configfs_symlink()
2019-11-12 19:15:51 +01:00
cramfs
Cramfs: fix abad comparison when wrap-arounds occur
2018-11-13 11:17:03 -08:00
crypto
fscrypt: don't set policy for a dead directory
2019-07-21 09:05:59 +02:00
debugfs
debugfs: fix use-after-free on symlink traversal
2019-05-08 07:19:10 +02:00
devpts
fs/devpts: always delete dcache dentry-s in dput()
2019-03-23 13:19:47 +01:00
dlm
dlm: fix invalid cluster name warning
2019-12-21 10:41:21 +01:00
ecryptfs
ecryptfs: Fix up bad backport of fe2e082f5da5b4a0a92ae32978f81507ef37ec66
2020-03-11 07:53:06 +01:00
efivarfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
efs
exofs
fs/exofs: fix potential memory leak in mount option parsing
2018-11-27 16:09:38 +01:00
exportfs
exportfs: fix 'passing zero to ERR_PTR()' warning
2020-01-29 10:24:03 +01:00
ext2
ext2: fix debug reference to ext2_xattr_cache
2020-04-24 07:59:14 +02:00
ext4
ext4: add cond_resched() to ext4_protect_reserved_inode
2020-05-20 08:15:29 +02:00
f2fs
f2fs: fix potential overflow
2020-01-23 08:19:37 +01:00
fat
fat: fix uninit-memory access for partial initialized inode
2020-03-11 07:53:11 +01:00
freevxfs
fscache
fscache: fix race between enablement and dropping of object
2018-12-17 09:38:34 +01:00
fuse
fuse: fix possibly missed wake-up after abort
2020-05-02 17:23:15 +02:00
gfs2
gfs2: Don't demote a glock until its revokes are written
2020-04-24 07:58:48 +02:00
hfs
fs/hfs/extent.c: fix array out of bounds read of array extent
2019-11-28 18:28:50 +01:00
hfsplus
hfsplus: fix crash and filesystem corruption when deleting files
2020-04-24 07:58:59 +02:00
hostfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
hpfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
hugetlbfs
hugetlb: use same fault hash key for shared and private mappings
2019-05-31 06:48:12 -07:00
isofs
isofs: fix timestamps beyond 2027
2017-11-30 08:39:04 +00:00
jbd2
jbd2: improve comments about freeing data buffers whose page mapping is NULL
2020-04-24 07:59:03 +02:00
jffs2
jffs2: fix use-after-free on symlink traversal
2019-05-08 07:19:09 +02:00
jfs
jfs: fix bogus variable self-initialization
2020-01-29 10:24:19 +01:00
kernfs
kernfs: Fix range checks in kernfs_get_target_path
2019-11-25 09:52:23 +01:00
lockd
lockd: fix access beyond unterminated strings in prints
2018-11-13 11:17:02 -08:00
logfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
minix
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
ncpfs
ncpfs: fix build warning of strncpy
2019-03-13 14:04:52 -07:00
nfs
nfs: Fix potential posix_acl refcnt leak in nfs3_set_acl
2020-05-05 19:14:40 +02:00
nfs_common
lockd: fix "list_add double add" caused by legacy signal interface
2018-02-03 17:05:38 +01:00
nfsd
nfsd: memory corruption in nfsd4_lock()
2020-05-02 17:23:15 +02:00
nilfs2
do d_instantiate/unlock_new_inode combinations safely
2018-05-30 07:50:16 +02:00
nls
notify
fanotify: fix handling of events on child sub-directory
2019-02-06 17:33:30 +01:00
ntfs
fs: remove the never implemented aio_fsync file operation
2016-10-30 13:09:42 -04:00
ocfs2
ocfs2: no need try to truncate file beyond i_size
2020-04-24 07:58:58 +02:00
omfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
openpromfs
orangefs
help_next should increase position index
2020-02-28 15:42:43 +01:00
overlayfs
ovl: filter of trusted xattr results in audit
2019-10-05 12:30:34 +02:00
proc
vmalloc: fix remap_vmalloc_range() bounds checks
2020-05-02 17:23:10 +02:00
pstore
pstore/ram: Write new dumps to start of recycled zones
2020-01-12 11:24:20 +01:00
qnx4
qnx6
quota
fs/quota: handle overflows of sysctl fs.quota.* and report as unsigned long
2020-01-04 13:40:50 +01:00
ramfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
reiserfs
reiserfs: prevent NULL pointer dereference in reiserfs_insert_item()
2020-02-28 15:42:41 +01:00
romfs
romfs: use different way to generate fsid for BLOCK or MTD
2017-06-17 06:41:56 +02:00
squashfs
Squashfs: Compute expected length from inode size rather than block length
2018-09-05 09:20:03 +02:00
sysfs
scsi: sysfs: Introduce sysfs_{un,}break_active_protection()
2018-09-05 09:20:10 +02:00
sysv
sysv: return 'err' instead of 0 in __sysv_write_inode
2018-12-17 09:38:32 +01:00
tracefs
ubifs
ubifs: Fix deadlock in concurrent bulk-read and writepage
2020-02-14 16:31:00 -05:00
udf
udf: Fix free space reporting for metadata and virtual partitions
2020-02-28 15:42:30 +01:00
ufs
ufs: fix braino in ufs_get_inode_gid() for solaris UFS flavour
2019-05-25 18:26:56 +02:00
xfs
xfs: fix partially uninitialized structure in xfs_reflink_remap_extent
2020-05-02 17:23:16 +02:00
aio.c
aio: fix spectre gadget in lookup_ioctx
2018-12-21 14:11:31 +01:00
anon_inodes.c
attr.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
bad_inode.c
bad_inode: add missing i_op initializers
2017-01-09 08:32:24 +01:00
binfmt_aout.c
binfmt_elf.c
binfmt_elf: Do not move brk for INTERP-less ET_EXEC
2020-05-20 08:15:29 +02:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
fs/binfmt_flat.c: make load_flat_shared_library() work
2019-07-10 09:55:38 +02:00
binfmt_misc.c
fs/binfmt_misc.c: do not allow offset overflow
2018-06-26 08:08:09 +08:00
binfmt_script.c
exec: load_script: Do not exec truncated interpreter path
2019-11-06 12:18:04 +01:00
block_dev.c
blockdev: Fix livelocks on loop device
2019-01-23 08:10:56 +01:00
buffer.c
fs: fix guard_bio_eod to check for real EOD errors
2019-04-05 22:29:08 +02:00
char_dev.c
chardev: add helper function to register char devs with a struct device
2020-05-20 08:15:32 +02:00
compat.c
compat_binfmt_elf.c
binfmt_elf: compat: avoid unused function warning
2018-02-25 11:05:55 +01:00
compat_ioctl.c
fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
2020-01-12 11:24:17 +01:00
coredump.c
coredump: Ensure proper size of sparse core files
2017-07-05 14:40:26 +02:00
dax.c
fs/dax.c: fix inefficiency in dax_writeback_mapping_range()
2018-02-28 10:18:33 +01:00
dcache.c
Hang/soft lockup in d_invalidate with simultaneous calls
2019-03-27 14:13:04 +09:00
dcookies.c
direct-io.c
direct-io: allow direct writes to empty inodes
2019-03-05 17:57:05 +01:00
drop_caches.c
fs/drop_caches.c: avoid softlockups in drop_pagecache_sb()
2019-03-13 14:04:58 -07:00
eventfd.c
eventpoll.c
fs/epoll: drop ovflist branch prediction
2019-02-12 19:44:59 +01:00
exec.c
signal: Extend exec_id to 64bits
2020-04-24 07:58:54 +02:00
fcntl.c
fs/fcntl: f_setown, avoid undefined behaviour
2018-01-31 12:55:52 +01:00
fhandle.c
file.c
fs/file.c: initialize init_files.resize_wait
2019-04-05 22:29:07 +02:00
file_table.c
filesystems.c
fs-writeback.c
cgroup,writeback: don't switch wbs immediately on dead wbs if the memcg is dead
2019-11-12 19:16:11 +01:00
fs_pin.c
fs_struct.c
inode.c
futex: Fix inode life-time issue
2020-04-02 17:20:27 +02:00
internal.h
xfs: evict all inodes involved with log redo item
2017-09-20 08:20:01 +02:00
ioctl.c
iomap.c
iomap: fix integer truncation issues in the zeroing and dirtying helpers
2017-09-20 08:19:59 +02:00
Kconfig
mm/hugetlb: introduce ARCH_HAS_GIGANTIC_PAGE
2016-10-07 18:46:29 -07:00
Kconfig.binfmt
libfs.c
libfs: fix infoleak in simple_attr_read()
2020-04-02 17:20:38 +02:00
locks.c
locks: print unsigned ino in /proc/locks
2020-01-12 11:24:13 +01:00
Makefile
mbcache.c
mbcache: initialize entry->e_referenced in mb_cache_entry_create()
2018-02-22 15:43:48 +01:00
mount.h
mnt: In propgate_umount handle visiting mounts in any order
2017-07-21 07:42:22 +02:00
mpage.c
fs/mpage.c: fix mpage_writepage() for pages with buffers
2017-10-18 09:35:39 +02:00
namei.c
namei: only return -ECHILD from follow_dotdot_rcu()
2020-03-11 07:53:07 +01:00
namespace.c
fs/namespace.c: fix mountpoint reference counter race
2020-05-02 17:23:10 +02:00
no-block.c
nsfs.c
nsfs: mark dentry with DCACHE_RCUACCESS
2018-02-17 13:21:15 +01:00
open.c
cifs_atomic_open(): fix double-put on late allocation failure
2020-03-20 09:07:44 +01:00
pipe.c
fs: prevent page refcount overflow in pipe_buf_get
2019-06-11 12:22:45 +02:00
pnode.c
propagate_one(): mnt_set_mountpoint() needs mount_lock
2020-05-02 17:23:20 +02:00
pnode.h
mnt: Tuck mounts under others instead of creating shadow/side mounts.
2017-03-15 10:02:43 +08:00
posix_acl.c
tmpfs: clear S_ISGID when setting posix ACLs
2017-01-26 08:24:37 +01:00
proc_namespace.c
read_write.c
fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock
2019-06-11 12:22:49 +02:00
readdir.c
filldir[64]: remove WARN_ON_ONCE() for bad directory entries
2020-01-04 13:41:06 +01:00
select.c
fs/select: add vmalloc fallback for select(2)
2016-10-11 15:06:30 -07:00
seq_file.c
seq/proc: modify seq_put_decimal_[u]ll to take a const char *, not char
2016-10-07 18:46:30 -07:00
signalfd.c
splice.c
fs: prevent page refcount overflow in pipe_buf_get
2019-06-11 12:22:45 +02:00
stack.c
stat.c
ufs: restore maintaining ->i_blocks
2017-06-14 15:06:01 +02:00
statfs.c
super.c
fs: don't scan the inode cache before SB_BORN is set
2019-02-06 17:33:29 +01:00
sync.c
timerfd.c
timerfd: Protect the might cancel mechanism proper
2017-05-08 07:47:54 +02:00
userfaultfd.c
userfaultfd_release: always remove uffd flags and clear vm_userfaultfd_ctx
2019-09-06 10:19:37 +02:00
utimes.c
Merge remote-tracking branch 'jk/vfs' into work.misc
2016-10-08 11:06:08 -04:00
xattr.c
sysfs: Do not return POSIX ACL xattrs via listxattr
2018-10-10 08:53:22 +02:00