Revision e3fce68cdbed297d927e993b3ea7b8b1cee545da authored by Jan Kara on 10 August 2016, 15:10:28 UTC, committed by Dan Williams on 27 December 2016, 04:29:24 UTC
Currently dax_iomap_rw() takes care of invalidating page tables and evicting hole pages from the radix tree when write(2) to the file happens. This invalidation is only necessary when there is some block allocation resulting from write(2). Furthermore in current place the invalidation is racy wrt page fault instantiating a hole page just after we have invalidated it. So perform the page invalidation inside dax_iomap_actor() where we can do it only when really necessary and after blocks have been allocated so nobody will be instantiating new hole pages anymore. Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
1 parent c6dcf52
File | Mode | Size |
---|---|---|
basic | ||
coccinelle | ||
dtc | ||
gcc-plugins | ||
gdb | ||
genksyms | ||
kconfig | ||
ksymoops | ||
mod | ||
package | ||
selinux | ||
tracing | ||
.gitignore | -rw-r--r-- | 170 bytes |
Kbuild.include | -rw-r--r-- | 14.9 KB |
Lindent | -rwxr-xr-x | 496 bytes |
Makefile | -rw-r--r-- | 1.8 KB |
Makefile.asm-generic | -rw-r--r-- | 1.1 KB |
Makefile.build | -rw-r--r-- | 18.5 KB |
Makefile.clean | -rw-r--r-- | 2.9 KB |
Makefile.dtbinst | -rw-r--r-- | 1.2 KB |
Makefile.extrawarn | -rw-r--r-- | 2.6 KB |
Makefile.fwinst | -rw-r--r-- | 2.0 KB |
Makefile.gcc-plugins | -rw-r--r-- | 2.5 KB |
Makefile.headersinst | -rw-r--r-- | 4.7 KB |
Makefile.help | -rw-r--r-- | 68 bytes |
Makefile.host | -rw-r--r-- | 6.8 KB |
Makefile.kasan | -rw-r--r-- | 1005 bytes |
Makefile.lib | -rw-r--r-- | 14.5 KB |
Makefile.modbuiltin | -rw-r--r-- | 1.8 KB |
Makefile.modinst | -rw-r--r-- | 1.2 KB |
Makefile.modpost | -rw-r--r-- | 5.5 KB |
Makefile.modsign | -rw-r--r-- | 1005 bytes |
Makefile.ubsan | -rw-r--r-- | 1.0 KB |
adjust_autoksyms.sh | -rwxr-xr-x | 2.8 KB |
analyze_suspend.py | -rwxr-xr-x | 157.1 KB |
asn1_compiler.c | -rw-r--r-- | 35.5 KB |
bloat-o-meter | -rwxr-xr-x | 2.2 KB |
bootgraph.pl | -rwxr-xr-x | 6.3 KB |
check-lc_ctype.c | -rw-r--r-- | 201 bytes |
check_00index.sh | -rwxr-xr-x | 1.3 KB |
check_extable.sh | -rwxr-xr-x | 4.9 KB |
checkincludes.pl | -rwxr-xr-x | 1.8 KB |
checkkconfigsymbols.py | -rwxr-xr-x | 15.5 KB |
checkpatch.pl | -rwxr-xr-x | 182.5 KB |
checkstack.pl | -rwxr-xr-x | 5.4 KB |
checksyscalls.sh | -rwxr-xr-x | 5.6 KB |
checkversion.pl | -rwxr-xr-x | 1.9 KB |
cleanfile | -rwxr-xr-x | 3.4 KB |
cleanpatch | -rwxr-xr-x | 5.0 KB |
coccicheck | -rwxr-xr-x | 7.1 KB |
config | -rwxr-xr-x | 4.5 KB |
conmakehash.c | -rw-r--r-- | 6.0 KB |
const_structs.checkpatch | -rw-r--r-- | 964 bytes |
decode_stacktrace.sh | -rwxr-xr-x | 3.7 KB |
decodecode | -rwxr-xr-x | 2.1 KB |
depmod.sh | -rwxr-xr-x | 1.7 KB |
diffconfig | -rwxr-xr-x | 3.7 KB |
docproc.c | -rw-r--r-- | 15.5 KB |
export_report.pl | -rwxr-xr-x | 4.5 KB |
extract-cert.c | -rw-r--r-- | 3.5 KB |
extract-ikconfig | -rwxr-xr-x | 1.7 KB |
extract-module-sig.pl | -rwxr-xr-x | 3.6 KB |
extract-sys-certs.pl | -rwxr-xr-x | 3.7 KB |
extract-vmlinux | -rwxr-xr-x | 1.6 KB |
extract_xc3028.pl | -rwxr-xr-x | 44.6 KB |
faddr2line | -rwxr-xr-x | 5.1 KB |
gcc-goto.sh | -rwxr-xr-x | 495 bytes |
gcc-ld | -rwxr-xr-x | 676 bytes |
gcc-plugin.sh | -rwxr-xr-x | 1.0 KB |
gcc-version.sh | -rwxr-xr-x | 822 bytes |
gcc-x86_32-has-stack-protector.sh | -rwxr-xr-x | 184 bytes |
gcc-x86_64-has-stack-protector.sh | -rwxr-xr-x | 209 bytes |
gen_initramfs_list.sh | -rwxr-xr-x | 7.9 KB |
get_dvb_firmware | -rwxr-xr-x | 25.2 KB |
get_maintainer.pl | -rwxr-xr-x | 59.1 KB |
gfp-translate | -rwxr-xr-x | 1.7 KB |
headerdep.pl | -rwxr-xr-x | 3.5 KB |
headers.sh | -rwxr-xr-x | 477 bytes |
headers_check.pl | -rwxr-xr-x | 3.7 KB |
headers_install.sh | -rwxr-xr-x | 1.3 KB |
insert-sys-cert.c | -rw-r--r-- | 8.9 KB |
kallsyms.c | -rw-r--r-- | 18.4 KB |
kernel-doc | -rwxr-xr-x | 88.2 KB |
kernel-doc-xml-ref | -rwxr-xr-x | 4.2 KB |
ld-version.sh | -rwxr-xr-x | 234 bytes |
link-vmlinux.sh | -rwxr-xr-x | 7.0 KB |
makelst | -rwxr-xr-x | 773 bytes |
markup_oops.pl | -rwxr-xr-x | 8.1 KB |
mkcompile_h | -rwxr-xr-x | 2.5 KB |
mkmakefile | -rwxr-xr-x | 1.2 KB |
mksysmap | -rwxr-xr-x | 1.3 KB |
mkuboot.sh | -rwxr-xr-x | 379 bytes |
mkversion | -rw-r--r-- | 74 bytes |
module-common.lds | -rw-r--r-- | 833 bytes |
namespace.pl | -rwxr-xr-x | 13.1 KB |
objdiff | -rwxr-xr-x | 2.7 KB |
patch-kernel | -rwxr-xr-x | 9.9 KB |
pnmtologo.c | -rw-r--r-- | 11.9 KB |
profile2linkerlist.pl | -rwxr-xr-x | 375 bytes |
prune-kernel | -rwxr-xr-x | 673 bytes |
recordmcount.c | -rw-r--r-- | 17.2 KB |
recordmcount.h | -rw-r--r-- | 16.4 KB |
recordmcount.pl | -rwxr-xr-x | 18.0 KB |
setlocalversion | -rwxr-xr-x | 3.9 KB |
show_delta | -rwxr-xr-x | 3.0 KB |
sign-file.c | -rw-r--r-- | 9.7 KB |
sortextable.c | -rw-r--r-- | 8.4 KB |
sortextable.h | -rw-r--r-- | 5.5 KB |
spelling.txt | -rw-r--r-- | 21.3 KB |
stackdelta | -rwxr-xr-x | 1.8 KB |
stackusage | -rwxr-xr-x | 759 bytes |
tags.sh | -rwxr-xr-x | 9.4 KB |
unifdef.c | -rw-r--r-- | 34.8 KB |
ver_linux | -rwxr-xr-x | 2.9 KB |
xen-hypercalls.sh | -rw-r--r-- | 351 bytes |
xz_wrap.sh | -rwxr-xr-x | 562 bytes |
Computing file changes ...