linux/drivers/staging
Jan Kara 0911d0041c mm: avoid returning VM_FAULT_RETRY from ->page_mkwrite handlers
Some ->page_mkwrite handlers may return VM_FAULT_RETRY as its return
code (GFS2 or Lustre can definitely do this).  However VM_FAULT_RETRY
from ->page_mkwrite is completely unhandled by the mm code and results
in locking and writeably mapping the page which definitely is not what
the caller wanted.

Fix Lustre and block_page_mkwrite_ret() used by other filesystems
(notably GFS2) to return VM_FAULT_NOPAGE instead which results in
bailing out from the fault code, the CPU then retries the access, and we
fault again effectively doing what the handler wanted.

Link: http://lkml.kernel.org/r/20170203150729.15863-1-jack@suse.cz
Signed-off-by: Jan Kara <jack@suse.cz>
Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-02-08 15:41:43 -08:00
..
android mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
board
clocking-wizard
comedi staging: comedi: comedidev.h: Document usage of 'detach' handler 2016-12-08 21:01:23 +01:00
dgnc staging: dgnc: Fix lines longer than 80 characters 2016-12-07 11:41:17 +01:00
emxx_udc staging: emxx_udc: emxx_udc.c Align parenthesis 2016-11-23 10:05:39 +01:00
fbtft
fsl-mc staging: fsl-mc: remove unnecessary info prints from bus driver 2016-12-08 21:00:08 +01:00
fwserial
gdm724x staging: gdm724x: Remove one blank line in sequence 2016-11-29 21:57:15 +01:00
goldfish
greybus staging: greybus: timesync: validate platform state callback 2017-01-25 11:36:59 +01:00
gs_fpgaboot
i4l
iio
ks7010 Staging: ks7010: ks7010_stio.h: fixed coding style error 2016-12-06 10:20:03 +01:00
lustre mm: avoid returning VM_FAULT_RETRY from ->page_mkwrite handlers 2017-02-08 15:41:43 -08:00
media media updates for v4.10-rc1 2016-12-16 09:39:16 -08:00
most staging: most: Eliminate usage of symbolic permissions 2016-11-29 21:57:14 +01:00
mt29f_spinand
netlogic
nvec
octeon staging: octeon: Call SET_NETDEV_DEV() 2017-01-03 17:11:50 +01:00
octeon-usb
olpc_dcon
rtl8188eu Makefile: drop -D__CHECK_ENDIAN__ from cflags 2016-12-16 00:13:43 +02:00
rtl8192e Makefile: drop -D__CHECK_ENDIAN__ from cflags 2016-12-16 00:13:43 +02:00
rtl8192u Staging/IIO patches for 4.10-rc1 2016-12-13 11:35:00 -08:00
rtl8712 Staging:rtl8712: Fixed coding style issue 2016-12-06 10:18:07 +01:00
rts5208
skein staging: skein: threefish_block.c Remove blank lines 2016-11-21 11:10:56 +01:00
sm750fb staging: sm750fb: fix tabstop style warning 2016-11-30 12:59:53 +01:00
speakup staging: speakup: speakup_soft.c Align parenthesis 2016-11-23 10:07:32 +01:00
unisys Staging/IIO patches for 4.10-rc1 2016-12-13 11:35:00 -08:00
vc04_services
vme Staging/IIO patches for 4.10-rc1 2016-12-13 11:35:00 -08:00
vt6655 staging: vt6655: Add spaces around + 2016-12-06 10:18:07 +01:00
vt6656 staging: vt6656: Fix coding style warnings on Block comments 2016-11-21 11:13:14 +01:00
wilc1000 Staging/IIO patches for 4.10-rc1 2016-12-13 11:35:00 -08:00
wlan-ng Staging/IIO patches for 4.10-rc1 2016-12-13 11:35:00 -08:00
xgifb staging: xgifb: XGI_main.h Align data columns 2016-11-19 14:17:51 +01:00
Kconfig staging: slicoss: remove the staging driver 2016-12-06 18:18:30 +01:00
Makefile staging: slicoss: remove the staging driver 2016-12-06 18:18:30 +01:00