linux/include
Alexey Dobriyan d56c0d45f0 proc: decouple proc from VFS with "struct proc_ops"
Currently core /proc code uses "struct file_operations" for custom hooks,
however, VFS doesn't directly call them.  Every time VFS expands
file_operations hook set, /proc code bloats for no reason.

Introduce "struct proc_ops" which contains only those hooks which /proc
allows to call into (open, release, read, write, ioctl, mmap, poll).  It
doesn't contain module pointer as well.

Save ~184 bytes per usage:

	add/remove: 26/26 grow/shrink: 1/4 up/down: 1922/-6674 (-4752)
	Function                                     old     new   delta
	sysvipc_proc_ops                               -      72     +72
				...
	config_gz_proc_ops                             -      72     +72
	proc_get_inode                               289     339     +50
	proc_reg_get_unmapped_area                   110     107      -3
	close_pdeo                                   227     224      -3
	proc_reg_open                                289     284      -5
	proc_create_data                              60      53      -7
	rt_cpu_seq_fops                              256       -    -256
				...
	default_affinity_proc_fops                   256       -    -256
	Total: Before=5430095, After=5425343, chg -0.09%

Link: http://lkml.kernel.org/r/20191225172228.GA13378@avx2
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-02-04 03:05:26 +00:00
..
acpi ACPICA: Update version to 20200110 2020-01-13 11:52:48 +01:00
asm-generic asm-generic/tlb: provide MMU_GATHER_TABLE_FREE 2020-02-04 03:05:26 +00:00
clocksource clocksource/drivers/hyper-v: Untangle stimers and timesync from clocksources 2020-01-16 19:09:02 +01:00
crypto crypto: poly1305 - add new 32 and 64-bit generic versions 2020-01-16 15:18:12 +08:00
drm Linux 5.5-rc7 2020-01-20 11:42:57 +10:00
dt-bindings Char/Misc driver changes for 5.6-rc1 2020-01-29 10:35:54 -08:00
keys powerpc updates for 5.5 2019-11-30 14:35:43 -08:00
kunit kunit: allow kunit tests to be loaded as a module 2020-01-09 16:42:29 -07:00
kvm
linux proc: decouple proc from VFS with "struct proc_ops" 2020-02-04 03:05:26 +00:00
math-emu
media media: cec: remove unused functions 2020-01-08 14:38:06 +01:00
misc
net mptcp: Fix undefined mptcp_handle_ipv6_mapped for modular IPV6 2020-01-30 10:55:54 +01:00
pcmcia
ras
rdma RDMA/core: Make the entire API tree static 2020-01-30 16:28:52 -04:00
scsi block, scsi: final compat_ioctl cleanup 2020-01-10 00:14:46 -05:00
soc Merge ra.kernel.org:/pub/scm/linux/kernel/git/netdev/net 2020-01-19 22:10:04 +01:00
sound ASoC: Updates for v5.6 2020-01-27 17:45:44 +01:00
target
trace media updates for v5.6-rc1 2020-01-31 14:43:23 -08:00
uapi Change /dev/random so that it uses the CRNG and only blocking if the 2020-02-01 09:48:37 -08:00
vdso lib/vdso: Prepare for time namespace support 2020-01-14 12:20:57 +01:00
video
xen Linux 5.5-rc3 2019-12-25 10:41:37 +01:00