]> Zhao Yanbai Git Server - minix.git/commit
libminixfs: add support for memory-mapped holes 57/3057/1
authorDavid van Moolenbroek <david@minix3.org>
Thu, 13 Aug 2015 12:23:06 +0000 (12:23 +0000)
committerDavid van Moolenbroek <david@minix3.org>
Thu, 13 Aug 2015 13:46:48 +0000 (13:46 +0000)
commitd75faf18d91c63ff738b133d42eedabf9901e44a
tree5087566f1e591a91b9be173727cbf59ecae08066
parente94f856b38e19c12288b8413a31732118153c230
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
minix/fs/ext2/read.c
minix/fs/mfs/read.c
minix/include/minix/libminixfs.h
minix/lib/libminixfs/cache.c
minix/tests/test74.c