linux/fs
Kirill A. Shutemov 0aa300a252 BACKPORT: FROMGIT: mm: Cleanup faultaround and finish_fault() codepaths
alloc_set_pte() has two users with different requirements: in the
faultaround code, it called from an atomic context and PTE page table
has to be preallocated. finish_fault() can sleep and allocate page table
as needed.

PTL locking rules are also strange, hard to follow and overkill for
finish_fault().

Let's untangle the mess. alloc_set_pte() has gone now. All locking is
explicit.

The price is some code duplication to handle huge pages in faultaround
path, but it should be fine, having overall improvement in readability.

Link: https://lore.kernel.org/r/20201229132819.najtavneutnf7ajp@box
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
[will: s/from from/from/ in comment; spotted by willy]
Signed-off-by: Will Deacon <will@kernel.org>
Change-Id: I2746b62adfe63e4f1b62e806df06b1b7a17574ad
Bug: 171278850
(cherry picked from commit f9ce0be71d
https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git/log/?h=for-next/faultaround)
[vinmenon: changes for speculative page fault]
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
2021-02-11 12:14:43 +00:00
..
9p Merge 5.10-rc7 into android-mainline 2020-12-09 08:09:26 +01:00
adfs Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-10-24 12:26:05 -07:00
affs Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-10-24 12:26:05 -07:00
afs This is the 5.10.15 stable release 2021-02-10 09:53:50 +01:00
autofs
befs
bfs bfs: don't use WARNING: string when it's just info. 2021-01-06 14:56:52 +01:00
btrfs Merge 5.10.13 into android12-5.10 2021-02-05 10:38:34 +01:00
cachefiles cachefiles: Drop superfluous readpages aops NULL check 2021-01-27 11:55:22 +01:00
ceph Merge 5.10.5 into android12-5.10 2021-01-10 12:19:03 +01:00
cifs This is the 5.10.15 stable release 2021-02-10 09:53:50 +01:00
coda
configfs
cramfs
crypto Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-5.10.y' into android12-5.10 2021-01-06 09:39:43 -08:00
debugfs debugfs: remove return value of debugfs_create_devm_seqfile() 2020-10-30 08:37:39 +01:00
devpts
dlm
ecryptfs
efivarfs efivarfs: revert "fix memory leak in efivarfs_create()" 2020-11-25 16:55:02 +01:00
efs
erofs Merge 5.10.4 into android12-5.10 2020-12-30 12:47:03 +01:00
exfat exfat: Avoid allocating upcase table using kcalloc() 2020-12-26 16:02:38 +01:00
exportfs
ext2 Merge 0746c4a9f3 ("Merge branch 'i2c/for-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux") into android-mainline 2020-10-28 21:20:34 +01:00
ext4 This is the 5.10.9 stable release 2021-01-19 18:49:54 +01:00
f2fs FROMGIT: f2fs: flush data when enabling checkpoint back 2021-01-28 18:04:28 +00:00
fat
freevxfs
fscache
fuse FROMLIST: fuse: Fix crediantials leak in passthrough read_iter 2021-02-05 14:15:09 +00:00
gfs2 Merge 34816d20f1 ("Merge tag 'gfs2-v5.10-rc5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2") into android-mainline 2020-12-03 18:58:23 +01:00
hfs Merge c2dc4c073f ("Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost") into android-mainline 2020-11-02 11:59:56 +01:00
hfsplus Merge c2dc4c073f ("Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost") into android-mainline 2020-11-02 11:59:56 +01:00
hostfs
hpfs
hugetlbfs mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page 2021-02-10 09:29:20 +01:00
incfs ANDROID: Incremental fs: Make data validation failure a warn 2021-01-14 16:03:13 +00:00
iomap Merge 5.10-rc3 into android-mainline 2020-11-09 12:49:27 +01:00
isofs fs: Replace zero-length array with flexible-array member 2020-10-29 17:22:59 -05:00
jbd2 jbd2: fix kernel-doc markups 2020-11-19 22:38:29 -05:00
jffs2 Merge 5.10.5 into android12-5.10 2021-01-10 12:19:03 +01:00
jfs Merge 5.10.4 into android12-5.10 2020-12-30 12:47:03 +01:00
kernfs kernfs: wire up ->splice_read and ->splice_write 2021-01-27 11:55:29 +01:00
lockd lockd: don't use interval-based rebinding over TCP 2020-12-30 11:53:30 +01:00
minix
nfs Merge 5.10.13 into android12-5.10 2021-02-05 10:38:34 +01:00
nfs_common nfs_common: need lock during iterate through the list 2020-12-30 11:53:45 +01:00
nfsd nfsd: Don't set eof on a truncated READ_PLUS 2021-01-27 11:55:05 +01:00
nilfs2 Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-10-24 12:26:05 -07:00
nls
notify Merge 5.10.8 into android12-5.10 2021-01-19 09:33:21 +01:00
ntfs Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-10-24 12:26:05 -07:00
ocfs2 Merge e28c0d7c92 ("Merge branch 'akpm' (patches from Andrew)") into android-mainline 2020-11-15 14:37:09 +01:00
omfs
openpromfs
orangefs
overlayfs This is the 5.10.15 stable release 2021-02-10 09:53:50 +01:00
proc FROMLIST: BACKPORT: procfs/dmabuf: Add inode number to /proc/*/fdinfo 2021-02-10 14:13:53 +00:00
pstore
qnx4
qnx6
quota quota: Don't overflow quota file offsets 2021-01-06 14:56:53 +01:00
ramfs
reiserfs Merge 5.10.5 into android12-5.10 2021-01-10 12:19:03 +01:00
romfs Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-10-24 12:26:05 -07:00
squashfs Merge 0746c4a9f3 ("Merge branch 'i2c/for-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux") into android-mainline 2020-10-28 21:20:34 +01:00
sysfs
sysv
tracefs
ubifs Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-5.10.y' into android12-5.10 2021-01-06 09:39:43 -08:00
udf udf: fix the problem that the disc content is not displayed 2021-02-07 15:37:15 +01:00
ufs Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-10-24 12:26:05 -07:00
unicode
vboxsf
verity fs-verity: move structs needed for file signing to UAPI header 2020-12-28 14:50:32 -08:00
xfs BACKPORT: FROMGIT: mm: Cleanup faultaround and finish_fault() codepaths 2021-02-11 12:14:43 +00:00
zonefs zonefs: select CONFIG_CRC32 2021-01-17 14:17:03 +01:00
aio.c vfs: separate __sb_start_write into blocking and non-blocking helpers 2020-11-10 16:53:07 -08:00
anon_inodes.c UPSTREAM: fs: add LSM-supporting anon-inode interface 2021-02-05 11:03:56 +00:00
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf_fdpic.c
binfmt_elf.c fs: Replace zero-length array with flexible-array member 2020-10-29 17:22:59 -05:00
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
block_dev.c Revert "block: simplify set_init_blocksize" to regain lost performance 2021-02-03 23:28:45 +01:00
buffer.c FROMLIST: fs/buffer.c: Revoke LRU when trying to drop buffers 2021-01-28 09:49:23 +00:00
char_dev.c
compat_binfmt_elf.c
coredump.c coredump: fix core_pattern parse error 2020-12-06 10:19:07 -08:00
d_path.c
dax.c fuse update for 5.10 2020-10-19 14:28:30 -07:00
dcache.c
dcookies.c
direct-io.c Merge 2d0f6b0aab ("Merge tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux") into android-mainline 2020-10-26 09:13:37 +01:00
drop_caches.c
eventfd.c
eventpoll.c Merge 5.10.4 into android12-5.10 2020-12-30 12:47:03 +01:00
exec.c exec: Transform exec_update_mutex into a rw_semaphore 2021-01-09 13:46:24 +01:00
fcntl.c fcntl: Fix potential deadlock in send_sig{io, urg}() 2021-01-06 14:56:53 +01:00
fhandle.c
file_table.c
file.c kernel/io_uring: cancel io_uring before task works 2021-01-30 13:55:18 +01:00
filesystems.c
fs_context.c
fs_parser.c
fs_pin.c
fs_struct.c
fs_types.c
fs-writeback.c fs: fix lazytime expiration handling in __writeback_single_inode() 2021-01-27 11:54:53 +01:00
fsopen.c
init.c
inode.c fs: Handle I_DONTCACHE in iput_final() instead of generic_drop_inode() 2020-12-30 11:53:49 +01:00
internal.h
io_uring.c io_uring: don't modify identity's files uncess identity is cowed 2021-02-10 09:29:19 +01:00
io-wq.c io-wq: cancel request if it's asking for files and we don't have them 2020-11-04 10:22:56 -07:00
io-wq.h io_uring: fix io_wqe->work_list corruption 2020-12-30 11:54:03 +01:00
ioctl.c
Kconfig
Kconfig.binfmt
kernel_read_file.c
libfs.c UPSTREAM: fs: add LSM-supporting anon-inode interface 2021-02-05 11:03:56 +00:00
locks.c
Makefile Merge 1f70935f63 ("Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc") into android-mainline 2020-10-27 11:47:16 +01:00
mbcache.c
mount.h
mpage.c
namei.c Merge 0746c4a9f3 ("Merge branch 'i2c/for-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux") into android-mainline 2020-10-28 21:20:34 +01:00
namespace.c umount(2): move the flag validity checks first 2021-01-19 18:27:32 +01:00
no-block.c
nsfs.c
open.c ANDROID: Add filp_open_block() for zram 2021-02-03 18:27:38 +00:00
pipe.c fs/pipe: allow sendfile() to pipe again 2021-01-27 11:55:29 +01:00
pnode.c
pnode.h fs/namespace.c: WARN if mnt_count has become negative 2021-01-06 14:56:54 +01:00
posix_acl.c
proc_namespace.c proc mountinfo: make splice available again 2020-12-30 11:54:02 +01:00
read_write.c Revert "Revert "fs: remove the compat readv/writev syscalls"" 2020-11-02 09:27:39 +01:00
readdir.c
remap_range.c
select.c poll: fix performance regression due to out-of-line __put_user() 2021-01-19 18:27:27 +01:00
seq_file.c fix return values of seq_read_iter() 2020-11-15 22:12:53 -05:00
signalfd.c
splice.c Revert "Revert "fs: remove compat_sys_vmsplice"" 2020-11-02 09:27:41 +01:00
stack.c
stat.c
statfs.c
super.c vfs: move __sb_{start,end}_write* to fs.h 2020-11-10 16:53:11 -08:00
sync.c
timerfd.c
userfaultfd.c UPSTREAM: userfaultfd: add user-mode only option to unprivileged_userfaultfd sysctl knob 2021-02-05 13:14:08 +00:00
utimes.c
xattr.c Merge d5660df4a5 ("Merge branch 'akpm' (patches from Andrew)") into android-mainline 2020-10-25 11:57:29 +01:00