kernel-fxtec-pro1x/fs
NeilBrown a1ac400e39
VFS: use synchronize_rcu_expedited() in namespace_unlock()
The synchronize_rcu() in namespace_unlock() is called every time
a filesystem is unmounted.  If a great many filesystems are mounted,
this can cause a noticable slow-down in, for example, system shutdown.

The sequence:
  mkdir -p /tmp/Mtest/{0..5000}
  time for i in /tmp/Mtest/*; do mount -t tmpfs tmpfs $i ; done
  time umount /tmp/Mtest/*

on a 4-cpu VM can report 8 seconds to mount the tmpfs filesystems, and
100 seconds to unmount them.

Boot the same VM with 1 CPU and it takes 18 seconds to mount the
tmpfs filesystems, but only 36 to unmount.

If we change the synchronize_rcu() to synchronize_rcu_expedited()
the umount time on a 4-cpu VM drop to 0.6 seconds

I think this 200-fold speed up is worth the slightly high system
impact of using synchronize_rcu_expedited().

Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> (from general rcu perspective)
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2021-08-23 17:41:46 +02:00
..
9p 9p: Fix memory leak in v9fs_mount 2020-08-19 08:15:06 +02:00
adfs fs/adfs: super: fix use-after-free bug 2019-08-06 19:06:49 +02:00
affs affs: fix basic permission bits to actually work 2020-09-09 19:04:30 +02:00
afs Merge android-4.19-stable.146 (443485d) into msm-4.19 2020-10-16 11:06:31 +05:30
autofs autofs: fix a leak in autofs_expire_indirect() 2019-12-13 08:51:01 +01:00
befs
bfs bfs: add sanity check at bfs_fill_super() 2018-12-01 09:37:27 +01:00
btrfs btrfs: qgroup: fix data leak caused by race between writeback and truncate 2020-10-01 13:14:49 +02:00
cachefiles cachefiles: Fix race between read_waiter and read_copier involving op->to_do 2020-06-03 08:19:29 +02:00
ceph ceph: fix potential race in ceph_check_caps 2020-10-01 13:14:47 +02:00
cifs cifs: Fix incomplete memory allocation on setxattr path 2020-10-14 10:31:23 +02:00
coda coda: add error handling for fget 2019-08-06 19:06:51 +02:00
configfs configfs: fix config_item refcnt leak in configfs_rmdir() 2020-05-27 17:37:32 +02:00
cramfs Cramfs: fix abad comparison when wrap-arounds occur 2018-11-13 11:08:55 -08:00
crypto fscrypt: Handle support for v1 encryption policy 2020-10-30 11:01:16 +05:30
debugfs debugfs: fix use-after-free on symlink traversal 2019-05-08 07:21:48 +02:00
devpts fs/devpts: always delete dcache dentry-s in dput() 2019-03-23 20:09:59 +01:00
dlm dlm: Fix kobject memleak 2020-08-19 08:15:02 +02:00
ecryptfs ecryptfs: replace BUG_ON with error handling code 2020-02-28 16:38:59 +01:00
efivarfs
efs
exfat exfat: remove useless check in exfat_move_file() 2021-08-21 16:13:01 +02:00
exofs Merge android-4.19-q.88 (47d86d5) into msm-4.19 2020-01-28 03:20:43 -08:00
exportfs exportfs: fix 'passing zero to ERR_PTR()' warning 2020-01-27 14:50:02 +01:00
ext2 ext2: don't update mtime on COW faults 2020-09-09 19:04:28 +02:00
ext4 Merge android-4.19-stable.149 (9ce79d9) into msm-4.19 2020-10-21 09:25:49 +05:30
f2fs Merge android-4.19-stable.149 (9ce79d9) into msm-4.19 2020-10-21 09:25:49 +05:30
fat fat: don't allow to mount if the FAT length == 0 2020-06-22 09:05:08 +02:00
freevxfs
fscache fscache: fix race between enablement and dropping of object 2018-12-17 09:24:40 +01:00
fuse Merge android-4.19-stable.149 (9ce79d9) into msm-4.19 2020-10-21 09:25:49 +05:30
gfs2 Merge android-4.19-stable.149 (9ce79d9) into msm-4.19 2020-10-21 09:25:49 +05:30
hfs fs/hfs/extent.c: fix array out of bounds read of array extent 2019-12-01 09:17:10 +01:00
hfsplus hfsplus: fix crash and filesystem corruption when deleting files 2020-04-17 10:48:52 +02:00
hostfs vfs: discard ATTR_ATTR_FLAG 2018-08-17 16:20:28 -07:00
hpfs hpfs: remove unnecessary checks on the value of r when assigning error code 2018-08-25 12:42:33 -07:00
hugetlbfs This is the 4.19.45 stable release 2019-05-22 08:01:49 +02:00
incfs ANDROID: Incremental fs: magic number compatible 32-bit 2020-08-31 19:18:46 +05:30
isofs isofs: reject hardware sector size > 2048 bytes 2018-08-21 11:37:41 +02:00
jbd2 jbd2: abort journal if free a async write error metadata buffer 2020-09-03 11:24:24 +02:00
jffs2 This is the 4.19.142 stable release 2020-08-26 11:07:03 +02:00
jfs jfs: fix bogus variable self-initialization 2020-01-27 14:50:33 +01:00
kernfs Merge android-4.19-stable.125 (a483478) into msm-4.19 2020-09-20 23:45:10 +05:30
lockd lockd: fix decoding of TEST results 2019-12-13 08:51:59 +01:00
minix fs/minix: remove expected error message in block_to_path() 2020-08-21 11:05:38 +02:00
nfs Merge android-4.19-stable.152 (13abe23) into msm-4.19 2020-10-28 17:52:20 +05:30
nfs_common
nfsd nfsd: Don't add locks to closed or closing open stateids 2020-10-01 13:14:38 +02:00
nilfs2 nilfs2: fix null pointer dereference at nilfs_segctor_do_construct() 2020-06-22 09:05:03 +02:00
nls
notify Restore sdcardfs feature 2020-08-21 15:15:18 +05:30
ntfs ntfs: mft: remove VLA usage 2018-08-17 16:20:27 -07:00
ocfs2 ocfs2: change slot number type s16 to u16 2020-08-21 11:05:33 +02:00
omfs
openpromfs
orangefs help_next should increase position index 2020-02-24 08:34:53 +01:00
overlayfs This is the 4.19.134 stable release 2020-07-22 13:03:12 +02:00
proc Merge android-4.19-stable.136 (204dd19) into msm-4.19 2020-10-14 20:04:29 +05:30
pstore fs: pstore: Import xiaomi changes 2021-08-21 16:10:46 +02:00
qnx4
qnx6
quota fs: avoid softlockups in s_inodes iterators 2020-01-12 12:17:20 +01:00
ramfs
reiserfs reiserfs: Fix oops during mount 2020-10-17 10:12:58 +02:00
romfs romfs: fix uninitialized memory leak in romfs_dev_read() 2020-08-26 10:30:59 +02:00
sdcardfs Restore sdcardfs feature 2020-08-21 15:15:18 +05:30
squashfs Squashfs: Compute expected length from inode size rather than block length 2018-08-02 09:34:02 -07:00
sysfs Driver core patches for 4.19-rc1 2018-08-18 11:44:53 -07:00
sysv sysv: return 'err' instead of 0 in __sysv_write_inode 2018-12-17 09:24:30 +01:00
tracefs
ubifs This is the 4.19.149 stable release 2020-10-01 16:49:05 +02:00
udf udf: Fix free space reporting for metadata and virtual partitions 2020-02-24 08:34:45 +01:00
ufs fs/ufs: avoid potential u32 multiplication overflow 2020-08-21 11:05:38 +02:00
unicode FROMLIST: unicode: Add utf8_casefold_hash 2020-02-28 03:35:36 +00:00
verity fs-verity: remove unnecessary extern keywords 2020-06-16 14:07:40 -07:00
xfs This is the 4.19.149 stable release 2020-10-01 16:49:05 +02:00
aio.c aio: fix async fsync creds 2020-06-22 09:05:01 +02:00
anon_inodes.c
attr.c Restore sdcardfs feature 2020-08-21 15:15:18 +05:30
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:19:41 +02:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c fs/binfmt_flat.c: make load_flat_shared_library() work 2019-07-03 13:14:44 +02:00
binfmt_misc.c
binfmt_script.c exec: load_script: Do not exec truncated interpreter path 2019-11-06 13:05:37 +01:00
block_dev.c This is the 4.19.149 stable release 2020-10-01 16:49:05 +02:00
buffer.c Merge android-4.19-stable.146 (443485d) into msm-4.19 2020-10-16 11:06:31 +05:30
char_dev.c chardev: Avoid potential use-after-free in 'chrdev_open()' 2020-01-24 14:28:27 +05:30
compat.c
compat_binfmt_elf.c
compat_ioctl.c fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP 2020-01-09 10:19:07 +01:00
coredump.c coredump: fix crash when umh is disabled 2020-09-08 01:59:16 -07:00
d_path.c ANDROID: fs: Export d_absolute_path 2018-08-28 17:10:42 +05:30
dax.c dax: pass NOWAIT flag to iomap_apply 2020-03-05 16:42:12 +01:00
dcache.c Merge android-4.19-stable.149 (9ce79d9) into msm-4.19 2020-10-21 09:25:49 +05:30
dcookies.c
direct-io.c ANDROID: fscrypt: handle direct I/O with IV_INO_LBLK_32 2020-07-27 14:49:02 +05:30
drop_caches.c fs: avoid softlockups in s_inodes iterators 2020-01-12 12:17:20 +01:00
eventfd.c eventfd: track eventfd_signal() recursion depth 2020-02-11 04:34:08 -08:00
eventpoll.c This is the 4.19.150 stable release 2020-10-07 08:45:35 +02:00
exec.c Restore sdcardfs feature 2020-08-21 15:15:18 +05:30
fcntl.c signal: Don't send signals to tasks that don't exist 2018-08-15 23:03:20 -05:00
fhandle.c
file.c fix multiplication overflow in copy_fdtable() 2020-05-27 17:37:29 +02:00
file_table.c FBE: Add support for hardware based FBE on f2fs and adapt ext4 fs 2019-03-15 17:23:07 -07:00
filesystems.c fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once() 2020-04-17 10:48:51 +02:00
fs-writeback.c writeback: Fix sync livelock due to b_dirty_time processing 2020-09-03 11:24:28 +02:00
fs_pin.c
fs_struct.c Restore sdcardfs feature 2020-08-21 15:15:18 +05:30
inode.c Restore sdcardfs feature 2020-08-21 15:15:18 +05:30
internal.h Restore sdcardfs feature 2020-08-21 15:15:18 +05:30
ioctl.c vfs: fix FIGETBSZ ioctl on an overlayfs file 2018-11-21 09:19:14 +01:00
iomap.c File and metadata encryption changes from android-4.19.96-107 2020-04-21 06:19:04 -07:00
Kconfig fs: Expose exFAT for building. 2021-08-21 16:13:01 +02:00
Kconfig.binfmt kconfig: move the "Executable file formats" menu to fs/Kconfig.binfmt 2018-08-02 08:06:55 +09:00
libfs.c Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19-stable 2020-06-15 13:24:58 -07:00
locks.c locks: print unsigned ino in /proc/locks 2020-01-09 10:19:00 +01:00
Makefile fs: Expose exFAT for building. 2021-08-21 16:13:01 +02:00
mbcache.c
mount.h
mpage.c f2fs: fix build error on android tracepoints 2019-08-17 00:18:14 +00:00
namei.c Restore sdcardfs feature 2020-08-21 15:15:18 +05:30
namespace.c VFS: use synchronize_rcu_expedited() in namespace_unlock() 2021-08-23 17:41:46 +02:00
no-block.c
nsfs.c dcache: sort the freeing-without-RCU-delay mess for good. 2019-05-25 18:23:26 +02:00
open.c Restore sdcardfs feature 2020-08-21 15:15:18 +05:30
pipe.c fs: prevent page refcount overflow in pipe_buf_get 2019-05-04 09:20:11 +02:00
pnode.c This is the 4.19.120 stable release 2020-05-03 08:48:02 +02:00
pnode.h ANDROID: mnt: Add filesystem private data to mount points 2018-12-05 09:48:13 -08:00
posix_acl.c
proc_namespace.c ANDROID: vfs: Allow filesystems to access their private mount data 2018-12-05 09:48:13 -08:00
read_write.c Merge android-4.19-stable.136 (204dd19) into msm-4.19 2020-10-14 20:04:29 +05:30
readdir.c filldir[64]: remove WARN_ON_ONCE() for bad directory entries 2020-01-04 19:13:26 +01:00
select.c
seq_file.c seq_file: fix problem when seeking mid-record 2019-08-25 10:47:43 +02:00
signalfd.c fs/signalfd.c: fix inconsistent return codes for signalfd4 2020-08-26 10:31:02 +02:00
splice.c splice: only read in as much information as there is pipe buffer space 2019-12-17 20:35:43 +01:00
stack.c
stat.c
statfs.c vfs: Fix EOVERFLOW testing in put_compat_statfs64 2019-10-11 18:21:39 +02:00
super.c Merge crypto changes from android-4.19.79-95 into msm-4.19 2020-04-24 15:21:22 -07:00
sync.c ANDROID: taskstats: track fsync syscalls 2018-12-05 09:48:12 -08:00
timerfd.c Merge branch 'work.aio' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-08-13 20:56:23 -07:00
userfaultfd.c Merge android-4.19.95 (5da1114) into msm-4.19 2020-03-27 10:48:20 -07:00
utimes.c Restore sdcardfs feature 2020-08-21 15:15:18 +05:30
xattr.c Merge android-4.19-stable.146 (443485d) into msm-4.19 2020-10-16 11:06:31 +05:30