android_kernel_samsung_msm8226/kernel
David Herrmann 610866cae2 shm: add memfd_create() syscall
memfd_create() is similar to mmap(MAP_ANON), but returns a file-descriptor
that you can pass to mmap().  It can support sealing and avoids any
connection to user-visible mount-points.  Thus, it's not subject to quotas
on mounted file-systems, but can be used like malloc()'ed memory, but with
a file-descriptor to it.

memfd_create() returns the raw shmem file, so calls like ftruncate() can
be used to modify the underlying inode.  Also calls like fstat() will
return proper information and mark the file as regular file.  If you want
sealing, you can specify MFD_ALLOW_SEALING.  Otherwise, sealing is not
supported (like on all other regular files).

Compared to O_TMPFILE, it does not require a tmpfs mount-point and is not
subject to a filesystem size limit.  It is still properly accounted to
memcg limits, though, and to the same overcommit or no-overcommit
accounting as all user memory.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Acked-by: Hugh Dickins <hughd@google.com>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Cc: Ryan Lortie <desrt@desrt.ca>
Cc: Lennart Poettering <lennart@poettering.net>
Cc: Daniel Mack <zonque@gmail.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-01-06 08:48:36 +01:00
..
debug Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
events perf/hwbp: Simplify the perf-hwbp code, fix documentation 2020-01-06 08:40:51 +01:00
gcov
irq Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
power power: reduce timeout for stopping processes 2020-01-06 08:40:48 +01:00
sched Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
time alarmtimer: Prevent overflow for relative nanosleep 2020-01-06 08:40:43 +01:00
trace UPSTREAM: ring-buffer: Prevent overflow of size in ring_buffer_resize() 2019-08-06 12:24:25 +02:00
.gitignore
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
Makefile brlocks/lglocks: turn into functions 2019-08-06 10:41:58 +02:00
acct.c
async.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
audit.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
audit.h
audit_tree.c VFS: Make clone_mnt()/copy_tree()/collect_mounts() return errors 2019-08-06 10:44:11 +02:00
audit_watch.c get rid of kern_path_parent() 2019-08-06 10:44:16 +02:00
auditfilter.c
auditsc.c seccomp: remove duplicated failure logging 2019-08-05 14:22:29 +02:00
backtracetest.c
bounds.c
capability.c
cgroup.c Merge remote-tracking branch 'google-common/deprecated/android-3.4' into lineage-16.0 2019-08-06 11:41:21 +02:00
cgroup_freezer.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
compat.c
configs.c
cpu.c CPU hotplug: Provide lockless versions of callback registration functions 2019-08-05 14:22:43 +02:00
cpu_pm.c
cpuset.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
crash_dump.c
cred.c
delayacct.c
dma.c
elfcore.c
exec_domain.c Merge remote-tracking branch 'google-common/deprecated/android-3.4' into lineage-16.0 2019-08-06 11:41:21 +02:00
exit.c Merge remote-tracking branch 'google-common/deprecated/android-3.4' into lineage-16.0 2019-08-06 11:41:21 +02:00
extable.c
fork.c Revert "proc: smaps: Allow smaps access for CAP_SYS_RESOURCE" 2019-08-06 12:26:28 +02:00
freezer.c Merge remote-tracking branch 'google-common/deprecated/android-3.4' into lineage-16.0 2019-08-06 11:41:21 +02:00
futex.c futex: Remove unnecessary warning from get_futex_key 2020-01-06 08:40:28 +01:00
futex_compat.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
groups.c misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
hrtimer.c time: Remove CONFIG_TIMER_STATS 2019-08-06 12:26:30 +02:00
hung_task.c
irq_work.c
itimer.c
jump_label.c
kallsyms.c
kexec.c
kfifo.c misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
kmod.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
kprobes.c
ksysfs.c rcu: Add a module parameter to force use of expedited RCU primitives 2014-05-05 15:49:18 -07:00
kthread.c
latencytop.c
lglock.c brlocks/lglocks: turn into functions 2019-08-06 10:41:58 +02:00
lockdep.c Merge remote-tracking branch 'google-common/deprecated/android-3.4' into lineage-16.0 2019-08-06 11:41:21 +02:00
lockdep_internals.h
lockdep_proc.c
lockdep_states.h
module.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
mutex-debug.c
mutex-debug.h
mutex.c misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
mutex.h
notifier.c
nsproxy.c userns: make each net (net_ns) belong to a user_ns 2019-08-08 15:08:49 +02:00
padata.c
panic.c misc: Allow kernel to be compiled with SEC_DEBUG disabled 2020-01-06 08:40:35 +01:00
params.c
pid.c misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
pid_namespace.c proc: Usable inode numbers for the namespace file descriptors. 2015-09-11 14:44:24 +05:30
posix-cpu-timers.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
posix-timers.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
printk.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
profile.c
ptrace.c __ptrace_may_access() should not deny sub-threads 2019-08-06 08:48:40 +02:00
range.c
rcu.h rcu: Add a module parameter to force use of expedited RCU primitives 2014-05-05 15:49:18 -07:00
rcupdate.c rcu: Make exit_rcu() more precise and consolidate 2014-07-21 21:31:55 +05:30
rcutiny.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
rcutiny_plugin.h rcu: Make exit_rcu() more precise and consolidate 2014-07-21 21:31:55 +05:30
rcutorture.c
rcutree.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
rcutree.h Revert "rcu: Move PREEMPT_RCU preemption to switch_to() invocation" 2014-07-21 21:46:54 +05:30
rcutree_plugin.h Revert "rcu: Move PREEMPT_RCU preemption to switch_to() invocation" 2014-07-21 21:46:54 +05:30
rcutree_trace.c rcu: Make rcu_barrier() less disruptive 2014-07-21 21:37:29 +05:30
relay.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
res_counter.c
resource.c /proc/iomem: only expose physical resource addresses to privileged users 2020-01-06 08:40:43 +01:00
rtmutex-debug.c
rtmutex-debug.h Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
rtmutex-tester.c
rtmutex.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
rtmutex.h Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
rtmutex_common.h
rwsem.c
seccomp.c seccomp: Replace BUG(!spin_is_locked()) with assert_spin_lock 2019-08-05 14:22:42 +02:00
semaphore.c
signal.c Merge remote-tracking branch 'google-common/deprecated/android-3.4' into lineage-16.0 2019-08-06 11:41:21 +02:00
smp.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
softirq.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
spinlock.c
srcu.c
stacktrace.c
stop_machine.c Drop whitespace, Kconfigs, Makefile noise and dead code 2013-03-14 09:32:58 -07:00
sys.c userns: Add kuid_t and kgid_t and associated infrastructure in uidgid.h 2019-08-08 15:08:48 +02:00
sys_ni.c shm: add memfd_create() syscall 2020-01-06 08:48:36 +01:00
sysctl.c add toggle for disabling newly added USB devices 2020-01-06 08:40:43 +01:00
sysctl_binary.c kernel/sysctl_binary.c: check name array length in deprecated_sysctl_warning() 2019-08-08 12:09:29 +02:00
taskstats.c
test_kprobes.c
time.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
timeconst.bc kernel: Replace timeconst.pl with a bc script 2019-08-05 09:09:45 +02:00
timeconst.pl Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
timer.c time: Remove CONFIG_TIMER_STATS 2019-08-06 12:26:30 +02:00
tracepoint.c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
tsacct.c
uid16.c
up.c
user-return-notifier.c
user.c proc: Usable inode numbers for the namespace file descriptors. 2015-09-11 14:44:24 +05:30
user_namespace.c proc: fix build broken by proc inode per namespace patch 2019-08-05 09:13:23 +02:00
utsname.c proc: Usable inode numbers for the namespace file descriptors. 2015-09-11 14:44:24 +05:30
utsname_sysctl.c
wait.c
watchdog.c Merge remote-tracking branch 'google-common/deprecated/android-3.4' into lineage-16.0 2019-08-06 11:41:21 +02:00
workqueue.c time: Remove CONFIG_TIMER_STATS 2019-08-06 12:26:30 +02:00
workqueue_sched.h