]> Zhao Yanbai Git Server - minix.git/commit
libminixfs: better support for read errors and EOF 62/3062/2
authorDavid van Moolenbroek <david@minix3.org>
Sun, 29 Mar 2015 16:57:53 +0000 (16:57 +0000)
committerDavid van Moolenbroek <david@minix3.org>
Fri, 14 Aug 2015 18:39:26 +0000 (18:39 +0000)
commit6c46a77d9509a6aefda1522eee2103e194ced4b3
tree7bf497e12d8aa10a128ea12de4a0b2359d9a600e
parent1311233cfbe0c8d7c7a17bdf5274fbcdd76d7702
libminixfs: better support for read errors and EOF

- The lmfs_get_block*(3) API calls may now return an error.  The idea
  is to encourage a next generation of file system services to do a
  better job at dealing with block read errors than the MFS-derived
  implementations do.  These existing file systems have been changed
  to panic immediately upon getting a block read error, in order to
  let unchecked errors cause corruption.  Note that libbdev already
  retries failing I/O operations a few times first.

- The libminixfs block device I/O module (bio.c) now deals properly
  with end-of-file conditions on block devices.  Since a device or
  partition size may not be a multiple of the root file system's block
  size, support for partial block retrival has been added, with a new
  internal lmfs_get_partial_block(3) call.  A new test program,
  test85, tests the new handling of EOF conditions when reading,
  writing, and memory-mapping a block device.

Change-Id: I05e35b6b8851488328a2679da635ebba0c6d08ce
23 files changed:
distrib/sets/lists/minix/mi
minix/fs/ext2/fs.h
minix/fs/ext2/proto.h
minix/fs/ext2/read.c
minix/fs/ext2/utility.c
minix/fs/ext2/write.c
minix/fs/isofs/read.c
minix/fs/isofs/susp.c
minix/fs/isofs/utility.c
minix/fs/mfs/cache.c
minix/fs/mfs/proto.h
minix/fs/mfs/read.c
minix/fs/mfs/write.c
minix/include/minix/libminixfs.h
minix/lib/libminixfs/bio.c
minix/lib/libminixfs/cache.c
minix/lib/libminixfs/inc.h [new file with mode: 0644]
minix/servers/vm/mem_cache.c
minix/servers/vm/mem_file.c
minix/tests/Makefile
minix/tests/run
minix/tests/test72.c
minix/tests/test85.c [new file with mode: 0644]