android_kernel_xiaomi_sdm845/fs
Zach Brown d55b5fdaf4 [PATCH] aio: remove aio_max_nr accounting race
AIO was adding a new context's max requests to the global total before
testing if that resulting total was over the global limit.  This let
innocent tasks get their new limit tested along with a racing guilty task
that was crossing the limit.  This serializes the _nr accounting with a
spinlock It also switches to using unsigned long for the global totals.
Individual contexts are still limited to an unsigned int's worth of
requests by the syscall interface.

The problem and fix were verified with a simple program that spun creating
and destroying a context while holding on to another long lived context.
Before the patch a task creating a tiny context could get a spurious EAGAIN
if it raced with a task creating a very large context that overran the
limit.

Signed-off-by: Zach Brown <zach.brown@oracle.com>
Cc: Benjamin LaHaise <bcrl@kvack.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-07 07:53:38 -08:00
..
9p [PATCH] v9fs: remove additional buffer allocation from v9fs_file_read and v9fs_file_write 2005-10-11 09:46:54 -07:00
adfs
affs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
afs [PATCH] mm: split page table lock 2005-10-29 21:40:42 -07:00
autofs [PATCH] autofs: fix "busy inodes after umount..." 2005-09-09 13:57:31 -07:00
autofs4
befs
bfs [PATCH] bfs iget() abuses 2005-10-04 13:22:01 -07:00
cifs [CIFS] Change pragma pack(1) to attribute(packed) to allow cifs on arm to access 2005-10-27 13:55:12 -07:00
coda [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
cramfs [PATCH] fs/cramfs/uncompress.c should #include <linux/cramfs_fs.h> 2005-09-10 10:06:35 -07:00
debugfs
devfs
devpts [PATCH] Generic VFS fallback for security xattrs 2005-09-05 00:05:52 -07:00
efs
exportfs
ext2 [PATCH] Test for sb_getblk return value 2005-10-30 17:37:26 -08:00
ext3 [PATCH] Test for sb_getblk return value 2005-10-30 17:37:26 -08:00
fat [PATCH] fat: Remove duplicate directory scanning code 2005-10-30 17:37:32 -08:00
freevxfs [PATCH] mm: rename kmem_cache_s to kmem_cache 2005-11-07 07:53:24 -08:00
fuse [PATCH] fuse: remove dead code from fuse_permission 2005-11-07 07:53:37 -08:00
hfs [PATCH] gfp_t: fs/* 2005-10-28 08:16:47 -07:00
hfsplus [PATCH] gfp_t: fs/* 2005-10-28 08:16:47 -07:00
hostfs [PATCH] uml: remove empty hostfs_truncate method 2005-09-30 12:41:18 -07:00
hpfs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
hppfs
hugetlbfs [PATCH] hugetlb: overcommit accounting check 2005-10-29 21:40:43 -07:00
isofs
jbd [PATCH] gfp_t: fs/* 2005-10-28 08:16:47 -07:00
jffs [PATCH] janitor: jffs/intrep: list_for_each_entry 2005-09-10 10:06:32 -07:00
jffs2 [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
jfs [PATCH] mm: split page table lock 2005-10-29 21:40:42 -07:00
lockd NFS,SUNRPC,NLM: fix unused variable warnings when CONFIG_SYSCTL is disabled 2005-11-04 15:39:48 -05:00
minix [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
msdos [PATCH] fat: remove the unneeded vfat_find() in vfat_rename() 2005-10-30 17:37:32 -08:00
ncpfs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
nfs NFS,SUNRPC,NLM: fix unused variable warnings when CONFIG_SYSCTL is disabled 2005-11-04 15:39:48 -05:00
nfs_common [PATCH] nfsacl: Solaris VxFS compatibility fix 2005-10-11 09:46:54 -07:00
nfsd [PATCH] nfsd4: fix setclientid unlock of unlocked state lock 2005-09-13 08:22:32 -07:00
nls
ntfs NTFS: Fix a stupid bug causing writes to non-initialized pages to segfault. 2005-11-01 15:49:31 +00:00
openpromfs
partitions [PATCH] s390: cleanup of include/asm-s390/vtoc.h 2005-11-07 07:53:34 -08:00
proc Merge ../linux-2.6 by hand 2005-10-31 13:37:12 +11:00
qnx4 [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
ramfs
reiserfs [PATCH] reiserfs: [kv]free() checking cleanup 2005-10-30 17:37:17 -08:00
relayfs [PATCH] relayfs: fix bogus param value in call to vmap 2005-10-10 08:39:50 -07:00
romfs
smbfs [PATCH] fs/smbfs/request.c: turn NULL dereference into BUG() 2005-11-07 07:53:36 -08:00
sysfs
sysv [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
udf [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
ufs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
vfat [PATCH] fat: remove the unneeded vfat_find() in vfat_rename() 2005-10-30 17:37:32 -08:00
xfs [PATCH] mm: rename kmem_cache_s to kmem_cache 2005-11-07 07:53:24 -08:00
aio.c [PATCH] aio: remove aio_max_nr accounting race 2005-11-07 07:53:38 -08:00
attr.c [PATCH] fs/attr.c: remove BUG() 2005-10-30 17:37:27 -08:00
bad_inode.c
binfmt_aout.c [PATCH] mm: mm_init set_mm_counters 2005-10-29 21:40:38 -07:00
binfmt_elf_fdpic.c [PATCH] mm: mm_init set_mm_counters 2005-10-29 21:40:38 -07:00
binfmt_elf.c [PATCH] Don't uselessly export task_struct to userspace in core dumps 2005-10-30 17:37:18 -08:00
binfmt_em86.c
binfmt_flat.c [PATCH] mm: mm_init set_mm_counters 2005-10-29 21:40:38 -07:00
binfmt_misc.c
binfmt_script.c
binfmt_som.c [PATCH] mm: mm_init set_mm_counters 2005-10-29 21:40:38 -07:00
bio.c [PATCH] gfp_t: fs/* 2005-10-28 08:16:47 -07:00
block_dev.c
buffer.c [PATCH] __bread oops fix 2005-10-30 17:37:27 -08:00
char_dev.c
compat_ioctl.c [PATCH] TIOC* compat ioctl handling 2005-10-30 17:37:17 -08:00
compat.c [PATCH] mm: update_hiwaters just in time 2005-10-29 21:40:39 -07:00
dcache.c [PATCH] Remove hlist_for_each_rcu() API, convert existing use to hlist_for_each_entry_rcu 2005-11-07 07:53:35 -08:00
dcookies.c
direct-io.c [PATCH] core remove PageReserved 2005-10-29 21:40:39 -07:00
dnotify.c
dquot.c [PATCH] reduce sizeof(struct file) 2005-10-30 17:37:19 -08:00
eventpoll.c [PATCH] epoll: handle timeout overflow 2005-09-28 07:46:41 -07:00
exec.c [PATCH] Process Events Connector 2005-11-07 07:53:35 -08:00
fcntl.c [PATCH] files: lock-free fd look-up 2005-09-09 13:57:55 -07:00
fifo.c
file_table.c [PATCH] mm: rename kmem_cache_s to kmem_cache 2005-11-07 07:53:24 -08:00
file.c [PATCH] Fix the fdtable freeing in the case of vmalloced fdset/arrays 2005-09-14 12:38:26 -07:00
filesystems.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
fs-writeback.c [PATCH] write_inode_now(): write inode if not BDI_CAP_NO_WRITEBACK 2005-11-07 07:53:35 -08:00
inode.c [PATCH] fix nr_unused accounting, and avoid recursing in iput with I_WILL_FREE set 2005-10-30 17:37:26 -08:00
inotify.c [PATCH] inotify/idr leak fix 2005-10-23 16:38:39 -07:00
ioctl.c
ioprio.c
Kconfig [PATCH] hfs needs nls 2005-11-07 07:53:36 -08:00
Kconfig.binfmt [PATCH] CONFIG_IA32 2005-10-30 17:37:10 -08:00
libfs.c
locks.c Fix Connectathon locking test failure 2005-10-18 14:20:21 -07:00
Makefile [PATCH] FUSE - MAINTAINERS, Kconfig and Makefile changes 2005-09-09 14:03:44 -07:00
mbcache.c [PATCH] gfp_t: fs/* 2005-10-28 08:16:47 -07:00
mpage.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
namei.c [PATCH] open: cleanup in lookup_flags() 2005-10-30 17:37:18 -08:00
namespace.c [PATCH] janitor: fs/namespace.c: list_for_each_entry 2005-09-10 10:06:32 -07:00
nfsctl.c
open.c VFS: Allow the filesystem to return a full file pointer on open intent 2005-10-18 14:20:16 -07:00
pipe.c [PATCH] sched: TASK_NONINTERACTIVE 2005-09-10 10:06:22 -07:00
posix_acl.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
quota_v1.c
quota_v2.c
quota.c [XFS] Add a mechanism for XFS to use the generic quota sync method. 2005-11-03 13:53:34 +11:00
read_write.c [PATCH] readv/writev syscalls are not checked by lsm 2005-09-29 15:42:08 -07:00
readdir.c
select.c [PATCH] files: lock-free fd look-up 2005-09-09 13:57:55 -07:00
seq_file.c
stat.c
super.c [PATCH] reduce sizeof(struct file) 2005-10-30 17:37:19 -08:00
xattr_acl.c
xattr.c [PATCH] SELinux: canonicalize getxattr() 2005-10-30 17:37:11 -08:00