David Howells
0e119b41b7
rxrpc: Limit the listening backlog
...
Limit the socket incoming call backlog queue size so that a remote client
can't pump in sufficient new calls that the server runs out of memory. Note
that this is partially theoretical at the moment since whilst the number of
calls is limited, the number of packets trying to set up new calls is not.
This will be addressed in a later patch.
If the caller of listen() specifies a backlog INT_MAX, then they get the
current maximum; anything else greater than max_backlog or anything
negative incurs EINVAL.
The limit on the maximum queue size can be set by:
echo N >/proc/sys/net/rxrpc/max_backlog
where 4<=N<=32.
Further, set the default backlog to 0, requiring listen() to be called
before we start actually queueing new calls. Whilst this kind of is a
change in the UAPI, the caller can't actually *accept* new calls anyway
unless they've first called listen() to put the socket into the LISTENING
state - thus the aforementioned new calls would otherwise just sit there,
eating up kernel memory. (Note that sockets that don't have a non-zero
service ID bound don't get incoming calls anyway.)
Given that the default backlog is now 0, make the AFS filesystem call
kernel_listen() to set the maximum backlog for itself.
Possible improvements include:
(1) Trimming a too-large backlog to max_backlog when listen is called.
(2) Trimming the backlog value whenever the value is used so that changes
to max_backlog are applied to an open socket automatically. Note that
the AFS filesystem opens one socket and keeps it open for extended
periods, so would miss out on changes to max_backlog.
(3) Having a separate setting for the AFS filesystem.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-06-10 18:14:47 -07:00
..
9p
switch xattr_handler->set() to passing dentry and inode separately
2016-05-27 15:39:43 -04:00
adfs
fs/adfs/adfs.h: tidy up comments
2016-01-20 17:09:18 -08:00
affs
affs: fix remount failure when there are no options changed
2016-05-28 16:50:24 -07:00
afs
rxrpc: Limit the listening backlog
2016-06-10 18:14:47 -07:00
autofs4
dcache_{readdir,dir_lseek}() users: switch to ->iterate_shared
2016-05-02 19:49:32 -04:00
befs
fs/befs/io.c:befs_bread(): remove unneeded initialization to NULL
2016-05-23 17:04:14 -07:00
bfs
more trivial ->iterate_shared conversions
2016-05-09 11:41:14 -04:00
btrfs
Merge branch 'for-linus-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
2016-06-04 11:56:28 -07:00
cachefiles
FS-Cache: make check_consistency callback return int
2016-06-01 10:29:39 +02:00
ceph
ceph: use i_version to check validity of fscache
2016-06-01 10:32:14 +02:00
cifs
switch xattr_handler->set() to passing dentry and inode separately
2016-05-27 15:39:43 -04:00
coda
introduce a parallel variant of ->iterate()
2016-05-02 19:49:29 -04:00
configfs
configfs_readdir(): make safe under shared lock
2016-05-09 11:41:13 -04:00
cramfs
more trivial ->iterate_shared conversions
2016-05-09 11:41:14 -04:00
crypto
fscrypto/f2fs: allow fs-specific key prefix for fs encryption
2016-05-07 10:32:33 -07:00
debugfs
Merge 4.6-rc4 into driver-core-next
2016-04-19 04:28:28 +09:00
devpts
devpts: Make each mount of devpts an independent filesystem.
2016-06-05 10:36:01 -07:00
dlm
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
ecryptfs
switch ->setxattr() to passing dentry and inode separately
2016-05-27 20:09:16 -04:00
efivarfs
fs/efivarfs/inode.c: use generic UUID library
2016-05-20 17:58:30 -07:00
efs
fs/efs/super.c: fix return value
2016-05-20 17:58:30 -07:00
exofs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2016-05-17 17:05:30 -07:00
exportfs
introduce a parallel variant of ->iterate()
2016-05-02 19:49:29 -04:00
ext2
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-05-27 17:14:05 -07:00
ext4
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-05-27 17:14:05 -07:00
f2fs
switch xattr_handler->set() to passing dentry and inode separately
2016-05-27 15:39:43 -04:00
fat
Merge branch 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-05-17 15:05:23 -07:00
freevxfs
more trivial ->iterate_shared conversions
2016-05-09 11:41:14 -04:00
fscache
FS-Cache: wake write waiter after invalidating writes
2016-06-01 10:29:09 +02:00
fuse
switch ->setxattr() to passing dentry and inode separately
2016-05-27 20:09:16 -04:00
gfs2
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-05-27 17:14:05 -07:00
hfs
switch ->setxattr() to passing dentry and inode separately
2016-05-27 20:09:16 -04:00
hfsplus
switch xattr_handler->set() to passing dentry and inode separately
2016-05-27 15:39:43 -04:00
hostfs
hostfs: switch to ->iterate_shared()
2016-05-12 19:49:30 -04:00
hpfs
hpfs: implement the show_options method
2016-05-28 16:50:24 -07:00
hugetlbfs
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
isofs
Merge branch 'ovl-fixes' into for-linus
2016-05-11 00:00:29 -04:00
jbd2
Fix a number of bugs, most notably a potential stale data exposure
2016-05-24 12:55:26 -07:00
jffs2
switch xattr_handler->set() to passing dentry and inode separately
2016-05-27 15:39:43 -04:00
jfs
switch xattr_handler->set() to passing dentry and inode separately
2016-05-27 15:39:43 -04:00
kernfs
switch ->setxattr() to passing dentry and inode separately
2016-05-27 20:09:16 -04:00
lockd
lockd: constify nlmsvc_binding structure
2016-01-07 10:10:50 -05:00
logfs
logfs: no need to lock directory in lseek
2016-05-09 11:42:19 -04:00
minix
simple local filesystems: switch to ->iterate_shared()
2016-05-02 19:49:32 -04:00
ncpfs
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
nfs
nfs: fix anonymous member initializer build failure with older compilers
2016-05-27 17:20:27 -07:00
nfs_common
nfsd
A very quiet cycle for nfsd, mainly just an RDMA update from Chuck Lever.
2016-05-24 14:39:20 -07:00
nilfs2
nilfs2: fix block comments
2016-05-23 17:04:14 -07:00
nls
notify
fsnotify: avoid spurious EMFILE errors from inotify_init()
2016-05-19 19:12:14 -07:00
ntfs
fs: simplify the generic_write_sync prototype
2016-05-01 19:58:39 -04:00
ocfs2
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-05-27 17:14:05 -07:00
omfs
more trivial ->iterate_shared conversions
2016-05-09 11:41:14 -04:00
openpromfs
more trivial ->iterate_shared conversions
2016-05-09 11:41:14 -04:00
orangefs
switch xattr_handler->set() to passing dentry and inode separately
2016-05-27 15:39:43 -04:00
overlayfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-05-27 17:14:05 -07:00
proc
mm, proc: make clear_refs killable
2016-05-23 17:04:14 -07:00
pstore
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
qnx4
more trivial ->iterate_shared conversions
2016-05-09 11:41:14 -04:00
qnx6
more trivial ->iterate_shared conversions
2016-05-09 11:41:14 -04:00
quota
fs/quota: use nla_put_u64_64bit()
2016-04-26 12:00:48 -04:00
ramfs
tmpfs/ramfs: fix VM_MAYSHARE mappings for NOMMU
2016-05-20 17:58:30 -07:00
reiserfs
switch xattr_handler->set() to passing dentry and inode separately
2016-05-27 15:39:43 -04:00
romfs
romfs, squashfs: switch to ->iterate_shared()
2016-05-09 11:41:15 -04:00
squashfs
romfs, squashfs: switch to ->iterate_shared()
2016-05-09 11:41:15 -04:00
sysfs
platform/chrome: Branch for v4.4
2015-11-13 21:53:18 -08:00
sysv
simple local filesystems: switch to ->iterate_shared()
2016-05-02 19:49:32 -04:00
tracefs
wrappers for ->i_mutex access
2016-01-22 18:04:28 -05:00
ubifs
This pull request contains mostly cleanups and minor
2016-05-27 18:49:29 -07:00
udf
Merge branch 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-05-17 15:05:23 -07:00
ufs
simple local filesystems: switch to ->iterate_shared()
2016-05-02 19:49:32 -04:00
xfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-05-27 17:14:05 -07:00
aio.c
aio: make aio_setup_ring killable
2016-05-23 17:04:14 -07:00
anon_inodes.c
attr.c
wrappers for ->i_mutex access
2016-01-22 18:04:28 -05:00
bad_inode.c
switch ->setxattr() to passing dentry and inode separately
2016-05-27 20:09:16 -04:00
binfmt_aout.c
fs: fix binfmt_aout.c build error
2016-05-28 16:34:59 -07:00
binfmt_elf.c
coredump: fix dumping through pipes
2016-06-07 22:07:09 -04:00
binfmt_elf_fdpic.c
coredump: fix dumping through pipes
2016-06-07 22:07:09 -04:00
binfmt_em86.c
binfmt_flat.c
remove lots of IS_ERR_VALUE abuses
2016-05-27 15:26:11 -07:00
binfmt_misc.c
wrappers for ->i_mutex access
2016-01-22 18:04:28 -05:00
binfmt_script.c
block_dev.c
DAX error handling for 4.7
2016-05-26 19:34:26 -07:00
buffer.c
mm, page_alloc: avoid looking up the first zone in a zonelist twice
2016-05-19 19:12:14 -07:00
char_dev.c
chrdev: emit a warning when we go below dynamic major range
2016-03-29 10:11:44 -07:00
compat.c
Fix a number of bugs, most notably a potential stale data exposure
2016-05-24 12:55:26 -07:00
compat_binfmt_elf.c
compat_ioctl.c
Merge 4.5-rc4 into char-misc-next
2016-02-14 14:25:59 -08:00
coredump.c
coredump: fix dumping through pipes
2016-06-07 22:07:09 -04:00
dax.c
Filesystem DAX locking for 4.7
2016-05-26 20:00:28 -07:00
dcache.c
fix d_walk()/non-delayed __d_free() race
2016-06-07 21:26:55 -04:00
dcookies.c
direct-io.c
direct-io: fix direct write stale data exposure from concurrent buffered read
2016-05-27 14:49:37 -07:00
drop_caches.c
eventfd.c
eventfd: document lockless access in eventfd_poll
2016-03-22 15:36:02 -07:00
eventpoll.c
fs: poll/select/recvmmsg: use timespec64 for timeout events
2016-05-19 19:12:14 -07:00
exec.c
exec: make exec path waiting for mmap_sem killable
2016-05-23 17:04:14 -07:00
fcntl.c
fcntl: allow to set O_DIRECT flag on pipe
2016-01-09 02:55:37 -05:00
fhandle.c
fs/coredump: prevent fsuid=0 dumps into user-controlled directories
2016-03-22 15:36:02 -07:00
file.c
give readdir(2)/getdents(2)/etc. uniform exclusion with lseek()
2016-05-02 19:49:28 -04:00
file_table.c
filesystems.c
find_filesystem(): simplify comparison
2016-01-19 12:02:23 -05:00
fs-writeback.c
mm,writeback: don't use memory reserves for wb_start_writeback
2016-05-20 17:58:30 -07:00
fs_pin.c
fs_struct.c
inode.c
parallel lookups: actual switch to rwsem
2016-05-02 19:49:28 -04:00
internal.h
Merge branch 'for-linus' into work.misc
2016-01-08 21:20:11 -05:00
ioctl.c
wrappers for ->i_mutex access
2016-01-22 18:04:28 -05:00
Kconfig
dax: Make huge page handling depend of CONFIG_BROKEN
2016-05-19 15:13:17 -06:00
Kconfig.binfmt
ELF/MIPS build fix
2016-05-23 17:04:14 -07:00
libfs.c
switch ->setxattr() to passing dentry and inode separately
2016-05-27 20:09:16 -04:00
locks.c
wrappers for ->i_mutex access
2016-01-22 18:04:28 -05:00
Makefile
Merge tag 'ofs-pull-tag-1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux
2016-03-26 12:59:04 -07:00
mbcache.c
mbcache: add reusable flag to cache entries
2016-02-22 22:44:04 -05:00
mount.h
mpage.c
mm, fs: remove remaining PAGE_CACHE_* and page_cache_{get,release} usage
2016-04-04 10:41:08 -07:00
namei.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-06-07 20:41:36 -07:00
namespace.c
mnt: fs_fully_visible test the proper mount for MNT_LOCKED
2016-06-06 20:52:03 -05:00
no-block.c
nsfs.c
open.c
Merge branch 'work.const-path' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-05-17 14:41:03 -07:00
pipe.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
pnode.c
propogate_mnt: Handle the first propogated copy being a slave
2016-05-05 09:54:45 -05:00
pnode.h
posix_acl.c
switch xattr_handler->set() to passing dentry and inode separately
2016-05-27 15:39:43 -04:00
proc_namespace.c
vfs: show_vfsstat: do not ignore errors from show_devname method
2016-03-16 13:09:08 -04:00
read_write.c
Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-05-18 11:46:23 -07:00
readdir.c
restore killability of old mutex_lock_killable(&inode->i_mutex) users
2016-05-26 00:13:25 -04:00
select.c
fs: poll/select/recvmmsg: use timespec64 for timeout events
2016-05-19 19:12:14 -07:00
seq_file.c
Make file credentials available to the seqfile interfaces
2016-04-14 12:56:09 -07:00
signalfd.c
splice.c
Merge branch 'ovl-fixes' into for-linus
2016-05-11 00:00:29 -04:00
stack.c
stat.c
fs/stat.c: drop the last new_valid_dev check
2016-01-16 11:17:23 -08:00
statfs.c
super.c
Merge branch 'master' into for-next
2016-04-18 11:18:55 +02:00
sync.c
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
timerfd.c
timerfd: Handle relative timers with CONFIG_TIME_LOW_RES proper
2016-01-17 11:13:55 +01:00
userfaultfd.c
userfaultfd: don't pin the user memory in userfaultfd_file_create()
2016-05-20 17:58:30 -07:00
utimes.c
wrappers for ->i_mutex access
2016-01-22 18:04:28 -05:00
xattr.c
switch ->setxattr() to passing dentry and inode separately
2016-05-27 20:09:16 -04:00