Kirill A. Shutemov
09cbfeaf1a
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
...
PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} macros were introduced *long* time
ago with promise that one day it will be possible to implement page
cache with bigger chunks than PAGE_SIZE.
This promise never materialized. And unlikely will.
We have many places where PAGE_CACHE_SIZE assumed to be equal to
PAGE_SIZE. And it's constant source of confusion on whether
PAGE_CACHE_* or PAGE_* constant should be used in a particular case,
especially on the border between fs and mm.
Global switching to PAGE_CACHE_SIZE != PAGE_SIZE would cause to much
breakage to be doable.
Let's stop pretending that pages in page cache are special. They are
not.
The changes are pretty straight-forward:
- <foo> << (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> <foo>;
- <foo> >> (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> <foo>;
- PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} -> PAGE_{SIZE,SHIFT,MASK,ALIGN};
- page_cache_get() -> get_page();
- page_cache_release() -> put_page();
This patch contains automated changes generated with coccinelle using
script below. For some reason, coccinelle doesn't patch header files.
I've called spatch for them manually.
The only adjustment after coccinelle is revert of changes to
PAGE_CAHCE_ALIGN definition: we are going to drop it later.
There are few places in the code where coccinelle didn't reach. I'll
fix them manually in a separate patch. Comments and documentation also
will be addressed with the separate patch.
virtual patch
@@
expression E;
@@
- E << (PAGE_CACHE_SHIFT - PAGE_SHIFT)
+ E
@@
expression E;
@@
- E >> (PAGE_CACHE_SHIFT - PAGE_SHIFT)
+ E
@@
@@
- PAGE_CACHE_SHIFT
+ PAGE_SHIFT
@@
@@
- PAGE_CACHE_SIZE
+ PAGE_SIZE
@@
@@
- PAGE_CACHE_MASK
+ PAGE_MASK
@@
expression E;
@@
- PAGE_CACHE_ALIGN(E)
+ PAGE_ALIGN(E)
@@
expression E;
@@
- page_cache_get(E)
+ get_page(E)
@@
expression E;
@@
- page_cache_release(E)
+ put_page(E)
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-04-04 10:41:08 -07:00
..
bpf
Merge branch 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-03-20 18:23:21 -07:00
configs
debug
mm/init: Add 'rodata=off' boot cmdline parameter to disable read-only kernel mappings
2016-02-22 08:51:37 +01:00
events
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
2016-04-04 10:41:08 -07:00
gcov
gcov: use within_module() helper.
2015-12-04 22:46:25 +01:00
irq
kernel/...: convert pr_warning to pr_warn
2016-03-22 15:36:02 -07:00
livepatch
livepatch/module: remove livepatch module notifier
2016-03-17 09:45:10 +01:00
locking
kernel: add kcov code coverage
2016-03-22 15:36:02 -07:00
power
Power management and ACPI material for v4.6-rc1, part 2
2016-03-24 22:59:58 -07:00
printk
printk: add clear_idx symbol to vmcoreinfo
2016-03-17 15:09:34 -07:00
rcu
kernel: add kcov code coverage
2016-03-22 15:36:02 -07:00
sched
Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-03-24 09:42:50 -07:00
time
sched: add schedule_timeout_idle()
2016-03-25 16:37:42 -07:00
trace
arch, ftrace: for KASAN put hard/soft IRQ entries into separate sections
2016-03-25 16:37:42 -07:00
.gitignore
acct.c
async.c
async: export current_is_async()
2015-11-19 17:51:48 +01:00
audit.c
Merge branch 'stable-4.6' of git://git.infradead.org/users/pcmoore/audit
2016-03-19 17:52:49 -07:00
audit.h
security: Make inode argument of inode_getsecid non-const
2015-12-24 11:09:39 -05:00
audit_fsnotify.c
wrappers for ->i_mutex access
2016-01-22 18:04:28 -05:00
audit_tree.c
audit_watch.c
Merge branch 'stable-4.6' of git://git.infradead.org/users/pcmoore/audit
2016-03-19 17:52:49 -07:00
auditfilter.c
audit: Fix typo in comment
2016-02-08 11:25:39 -05:00
auditsc.c
auditsc: for seccomp events, log syscall compat state using in_compat_syscall
2016-03-22 15:36:02 -07:00
backtracetest.c
bounds.c
capability.c
cgroup.c
Merge branch 'for-4.6-ns' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
2016-03-21 10:05:13 -07:00
cgroup_freezer.c
cgroup: kill cgrp_ss_priv[CGROUP_CANFORK_COUNT] and friends
2015-12-03 10:24:08 -05:00
cgroup_pids.c
cgroup_pids: fix a typo.
2015-12-14 14:54:37 -05:00
compat.c
configs.c
context_tracking.c
context_tracking: Switch to new static_branch API
2015-11-24 09:56:43 +01:00
cpu.c
cpu/hotplug: Document states better
2016-03-12 20:57:38 +01:00
cpu_pm.c
cpuset.c
Merge branch 'for-4.6-ns' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
2016-03-21 10:05:13 -07:00
crash_dump.c
cred.c
kmemcg: account certain kmem allocations to memcg
2016-01-14 16:00:49 -08:00
delayacct.c
kmemcg: account certain kmem allocations to memcg
2016-01-14 16:00:49 -08:00
dma.c
elfcore.c
exec_domain.c
exit.c
oom: clear TIF_MEMDIE after oom_reaper managed to unmap the address space
2016-03-25 16:37:42 -07:00
extable.c
fork.c
kernel: add kcov code coverage
2016-03-22 15:36:02 -07:00
freezer.c
futex.c
futex: Replace barrier() in unqueue_me() with READ_ONCE()
2016-03-08 17:04:02 +01:00
futex_compat.c
ptrace: use fsuid, fsgid, effective creds for fs access checks
2016-01-20 17:09:18 -08:00
groups.c
hung_task.c
kernel/hung_task.c: use timeout diff when timeout is updated
2016-03-22 15:36:02 -07:00
irq_work.c
treewide: Remove old email address
2015-11-23 09:44:58 +01:00
jump_label.c
treewide: Remove old email address
2015-11-23 09:44:58 +01:00
kallsyms.c
kallsyms: add support for relative offsets in kallsyms address table
2016-03-15 16:55:16 -07:00
kcmp.c
ptrace: use fsuid, fsgid, effective creds for fs access checks
2016-01-20 17:09:18 -08:00
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
kernel: add kcov code coverage
2016-03-22 15:36:02 -07:00
kexec.c
kexec: set KEXEC_TYPE_CRASH before sanity_check_segment_list()
2016-01-20 17:09:18 -08:00
kexec_core.c
kexec: Set IORESOURCE_SYSTEM_RAM for System RAM
2016-01-30 09:49:57 +01:00
kexec_file.c
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
2016-03-17 11:33:45 -07:00
kexec_internal.h
kexec: move some memembers and definitions within the scope of CONFIG_KEXEC_FILE
2016-01-20 17:09:18 -08:00
kmod.c
kprobes.c
ksysfs.c
rcu: Remove TINY_RCU bloat from pointless boot parameters
2015-12-07 16:59:37 -08:00
kthread.c
latencytop.c
sched/debug: Make schedstats a runtime tunable that is disabled by default
2016-02-09 11:54:23 +01:00
Makefile
kernel: add kcov code coverage
2016-03-22 15:36:02 -07:00
membarrier.c
memremap.c
memremap: add MEMREMAP_WC flag
2016-03-22 15:36:02 -07:00
module-internal.h
module.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching
2016-03-17 21:46:32 -07:00
module_signing.c
X.509: Make algo identifiers text instead of enum
2016-03-03 21:49:27 +00:00
notifier.c
nsproxy.c
cgroup: introduce cgroup namespaces
2016-02-16 13:04:58 -05:00
padata.c
panic.c
panic: change nmi_panic from macro to function
2016-03-22 15:36:02 -07:00
params.c
pid.c
Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-01-31 15:44:04 -08:00
pid_namespace.c
profile.c
profile: hide unused functions when !CONFIG_PROC_FS
2016-03-22 15:36:02 -07:00
ptrace.c
ptrace: change __ptrace_unlink() to clear ->ptrace under ->siglock
2016-03-22 15:36:02 -07:00
range.c
reboot.c
relay.c
wrappers for ->i_mutex access
2016-01-22 18:04:28 -05:00
resource.c
resource: Export insert_resource and remove_resource
2016-03-09 11:07:20 -08:00
seccomp.c
seccomp: check in_compat_syscall, not is_compat_task, in strict mode
2016-03-22 15:36:02 -07:00
signal.c
kernel/signal.c: add compile-time check for __ARCH_SI_PREAMBLE_SIZE
2016-03-22 15:36:02 -07:00
smp.c
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-03-15 13:50:29 -07:00
smpboot.c
cpu/hotplug: Unpark smpboot threads from the state machine
2016-03-01 20:36:56 +01:00
smpboot.h
cpu/hotplug: Create hotplug threads
2016-03-01 20:36:56 +01:00
softirq.c
arch, ftrace: for KASAN put hard/soft IRQ entries into separate sections
2016-03-25 16:37:42 -07:00
stacktrace.c
stop_machine.c
kernel/stop_machine.c: remove CONFIG_SMP dependencies
2016-01-16 11:17:24 -08:00
sys.c
timer: convert timer_slack_ns from unsigned long to u64
2016-03-17 15:09:34 -07:00
sys_ni.c
vfs: add copy_file_range syscall and vfs helper
2015-12-01 14:00:53 -05:00
sysctl.c
mm: scale kswapd watermarks in proportion to memory
2016-03-17 15:09:34 -07:00
sysctl_binary.c
fs/coredump: prevent fsuid=0 dumps into user-controlled directories
2016-03-22 15:36:02 -07:00
task_work.c
taskstats.c
test_kprobes.c
torture.c
tracepoint.c
kernel/...: convert pr_warning to pr_warn
2016-03-22 15:36:02 -07:00
tsacct.c
time, acct: Drop irq save & restore from __acct_update_integrals()
2016-02-29 09:53:09 +01:00
uid16.c
up.c
user-return-notifier.c
user.c
user_namespace.c
kernel/*: switch to memdup_user_nul()
2016-01-04 10:27:55 -05:00
utsname.c
utsname_sysctl.c
watchdog.c
watchdog: don't run proc_watchdog_update if new value is same as old
2016-03-17 15:09:34 -07:00
workqueue.c
Merge branch 'for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
2016-03-18 20:05:39 -07:00
workqueue_internal.h
sched/core: Get rid of 'cpu' argument in wq_worker_sleeping()
2016-03-02 10:28:47 -05:00