e2fsprogs/lib
Theodore Ts'o 127e2291bf libext2fs: fix Direct I/O fallback code so it implements RMW correctly
There is a bug in Unix I/O manager where if an aligned I/O is
required, it does not correctly do the read-modify-write cycle
correctly.  Specifically, it was not doing an lseek between the read
and the write calls, so the update was going to block N+1 instead of
block N.  Oops.

Fortunately in practice we almost never use this fallback path, so
file systems weren't getting horribly corrupted, because (a) we almost
never use Direct I/O in e2fsprogs, at least not by default, and (b)
when we do the buffers end up being aligned anyway, so it's OK.

We only noticed this because the new Undo I/O manager in e2fsprogs
1.43 was doing unaligned I/O and FreeBSD requires that I/O requests be
aligned even if you are not doing Direct I/O, and the e2undo
regression tests were all failing as a result.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2016-06-06 23:04:43 -04:00
..
blkid blkid: fix ZFS device detection 2016-03-06 18:11:47 -05:00
e2p lsattr: treat inode generation as an unsigned int 2016-03-06 18:12:57 -05:00
et buildsystem: use 'chmod a-w' instead of 'chmod -w' 2015-01-23 12:05:19 -05:00
ext2fs libext2fs: fix Direct I/O fallback code so it implements RMW correctly 2016-06-06 23:04:43 -04:00
quota build: fix unused/uninitialized variable warnings 2014-07-25 22:48:01 -04:00
ss buildsystem: use 'chmod a-w' instead of 'chmod -w' 2015-01-23 12:05:19 -05:00
uuid Fix warnings caused by glibc 2.20 2016-03-21 13:05:25 -04:00
Makefile.bsd-lib Include LDFLAGS when building BSD libraries 2012-05-11 22:21:08 -04:00
Makefile.checker e2fsprogs: remove checker infrastructure 2014-07-04 23:59:30 -04:00
Makefile.darwin-lib Add configure options --enable-symlink-build and --enable-symlink-install 2010-05-17 19:21:42 -04:00
Makefile.elf-lib Put ELF_OTHER_LIBS in the right place for the linker 2012-08-06 12:30:49 -04:00
Makefile.library Add configure options --enable-symlink-build and --enable-symlink-install 2010-05-17 19:21:42 -04:00
Makefile.profile Add configure options --enable-symlink-build and --enable-symlink-install 2010-05-17 19:21:42 -04:00
Makefile.solaris-lib Put ELF_OTHER_LIBS in the right place for the linker 2012-08-06 12:30:49 -04:00
config.h.in util: allow subst to build on systems that do not have utimes() 2014-10-19 22:13:09 -04:00
dirpaths.h.in Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00
fpopen.c Shorten compile commands run by the build system 2011-09-18 17:34:37 -04:00