https://github.com/torvalds/linux
Revision d97baf9470b0668904aa96865abe7db4000dc3ba authored by Souptick Joarder on 18 May 2018, 23:08:47 UTC, committed by Linus Torvalds on 19 May 2018, 00:17:12 UTC
Many places in drivers/ file systems, error was handled in a common way like below: ret = (ret == -ENOMEM) ? VM_FAULT_OOM : VM_FAULT_SIGBUS; vmf_error() will replace this and return vm_fault_t type err. A lot of drivers and filesystems currently have a rather complex mapping of errno-to-VM_FAULT code. We have been able to eliminate a lot of it by just returning VM_FAULT codes directly from functions which are called exclusively from the fault handling path. Some functions can be called both from the fault handler and other context which are expecting an errno, so they have to continue to return an errno. Some users still need to choose different behaviour for different errnos, but vmf_error() captures the essential error translation that's common to all users, and those that need to handle additional errors can handle them first. Link: http://lkml.kernel.org/r/20180510174826.GA14268@jordon-HP-15-Notebook-PC Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> Reviewed-by: Matthew Wilcox <mawilcox@microsoft.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 1e3054b
Tip revision: d97baf9470b0668904aa96865abe7db4000dc3ba authored by Souptick Joarder on 18 May 2018, 23:08:47 UTC
include/linux/mm.h: add new inline function vmf_error()
include/linux/mm.h: add new inline function vmf_error()
Tip revision: d97baf9
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 3.5 KB |
Makefile | -rw-r--r-- | 735 bytes |
alarmtimer.c | -rw-r--r-- | 22.5 KB |
clockevents.c | -rw-r--r-- | 19.3 KB |
clocksource.c | -rw-r--r-- | 29.0 KB |
hrtimer.c | -rw-r--r-- | 53.9 KB |
itimer.c | -rw-r--r-- | 7.9 KB |
jiffies.c | -rw-r--r-- | 3.8 KB |
ntp.c | -rw-r--r-- | 25.7 KB |
ntp_internal.h | -rw-r--r-- | 528 bytes |
posix-clock.c | -rw-r--r-- | 6.4 KB |
posix-cpu-timers.c | -rw-r--r-- | 37.5 KB |
posix-stubs.c | -rw-r--r-- | 5.3 KB |
posix-timers.c | -rw-r--r-- | 35.6 KB |
posix-timers.h | -rw-r--r-- | 1.6 KB |
sched_clock.c | -rw-r--r-- | 8.3 KB |
test_udelay.c | -rw-r--r-- | 4.1 KB |
tick-broadcast-hrtimer.c | -rw-r--r-- | 3.0 KB |
tick-broadcast.c | -rw-r--r-- | 26.7 KB |
tick-common.c | -rw-r--r-- | 13.5 KB |
tick-internal.h | -rw-r--r-- | 6.9 KB |
tick-oneshot.c | -rw-r--r-- | 3.2 KB |
tick-sched.c | -rw-r--r-- | 33.8 KB |
tick-sched.h | -rw-r--r-- | 2.9 KB |
time.c | -rw-r--r-- | 22.5 KB |
timeconst.bc | -rw-r--r-- | 3.0 KB |
timeconv.c | -rw-r--r-- | 3.5 KB |
timecounter.c | -rw-r--r-- | 3.0 KB |
timekeeping.c | -rw-r--r-- | 65.4 KB |
timekeeping.h | -rw-r--r-- | 661 bytes |
timekeeping_debug.c | -rw-r--r-- | 2.1 KB |
timekeeping_internal.h | -rw-r--r-- | 778 bytes |
timer.c | -rw-r--r-- | 56.7 KB |
timer_list.c | -rw-r--r-- | 9.4 KB |
Computing file changes ...