Whamcloud - gitweb
e2fsck: don't flush the FS unless it's actually dirty
authorDarrick J. Wong <darrick.wong@oracle.com>
Tue, 12 Aug 2014 18:19:37 +0000 (14:19 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 12 Aug 2014 18:19:42 +0000 (14:19 -0400)
commitab2cd4a4d2924f8d120af5461e78e808e785970a
treed2bbb779ef3aafc103952c23247021ff85720908
parent115d4b4b33540da49e5d04135417392f7c4d54fc
e2fsck: don't flush the FS unless it's actually dirty

ext2fs_flush2() unconditionally writes the block group descriptors to
disk even if the underlying FS isn't marked dirty.  This causes the
following error message on a fsck -n run:

e2fsck 1.43-WIP (09-Jul-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Error writing block 2 (Attempt to write block to filesystem resulted in short write).  Ignore error? no

Error writing block 2 (Attempt to write block to filesystem resulted in short write).  Ignore error? no

Error writing file system info: Attempt to write block to filesystem resulted in short write

Since ext2fs_close2() only calls flush if the dirty flag is set,
modify e2fsck to exhibit the same behavior so that we don't spit out
write errors for a read only check.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
e2fsck/unix.c
tests/f_readonly_fsck/expect [new file with mode: 0644]
tests/f_readonly_fsck/image.gz [new file with mode: 0644]
tests/f_readonly_fsck/name [new file with mode: 0644]
tests/f_readonly_fsck/script [new file with mode: 0644]