Go to file
David van Moolenbroek d75faf18d9 libminixfs: add support for memory-mapped holes
When VM asks a file system to provide a block to satisfy a page fault
on a file memory mapping, the file system previously had no way to
inform VM that the block is a hole, since there is no corresponding
block on the underlying device.  To work around this, MFS and ext2
would actually allocate a block for the hole when asked by VM, which
not only defeats the point of holes in the first place, but also does
not work on read-only file systems.  With this patch, a new libminixfs
call allows the file system to inform VM about holes.  This issue does
raise the question as to whether the VM cache is using the right data
structures, since there are now two places where we have to fake a
device offset.  This will have to be revisited in the future.

The patch changes file systems accordingly, and adds a test to test74.

Change-Id: Ib537d56b3f30a8eb05bc1f63c92b5c7428d18f4c
2015-08-13 13:46:48 +00:00
bin Importing bin/domainname utility 2015-07-28 21:56:19 +00:00
common inet: do not link against libc 2015-06-07 14:38:12 +00:00
distrib etc: create system log files 2015-08-10 11:38:16 +00:00
docs Add PTYFS, Unix98 pseudo terminal support 2015-06-23 17:43:46 +00:00
etc libminixfs/VM: fix memory-mapped file corruption 2015-08-13 13:46:46 +00:00
external clang: apply LLVM patch r201729 2015-06-29 10:58:16 +00:00
games Import games/caesar and games/rot13 2015-04-15 09:47:27 +02:00
gnu Update download urls in fetch.sh 2014-08-07 14:27:32 +02:00
include New sources layout 2014-07-31 16:00:30 +02:00
lib Importing bin/domainname utility 2015-07-28 21:56:19 +00:00
libexec LLVM Minix changes 2014-07-28 17:05:59 +02:00
minix libminixfs: add support for memory-mapped holes 2015-08-13 13:46:48 +00:00
releasetools Add PTYFS, Unix98 pseudo terminal support 2015-06-23 17:43:46 +00:00
sbin INIT died problem / build system robustness 2014-08-28 08:52:50 +02:00
share ARM: can build with llvm, switch to EABI 2014-12-12 13:04:56 +01:00
sys libminixfs: add support for 64-bit block numbers 2015-08-13 13:46:44 +00:00
tests LLVM Minix changes 2014-07-28 17:05:59 +02:00
tools buildsystem: fix build errors for x86 on OSX 2014-11-04 11:00:29 +01:00
usr.bin patch(1): fix arbitrary code execution bug 2015-07-26 15:53:47 +00:00
usr.sbin Import NetBSD syslogd(8) 2015-07-26 11:57:04 +00:00
.gitignore gitignore: ignore some more generated files 2012-12-06 13:29:20 +00:00
.gitreview build:update 'git review' config to match gerrit.minix3.org 2014-07-28 17:05:15 +02:00
build.sh Importing netbsd clang -- pristine 2014-07-28 17:05:57 +02:00
LICENSE Fix parameter parsing in cut 2010-01-21 10:16:05 +00:00
Makefile INIT died problem / build system robustness 2014-08-28 08:52:50 +02:00
Makefile.inc Synchronize on NetBSD-CVS (2013/12/1 12:00:00 UTC) 2014-07-28 17:05:06 +02:00