Whamcloud - gitweb
e2fsck: flush out the superblock and bitmaps before printing final messages
authorTheodore Ts'o <tytso@mit.edu>
Sun, 10 Aug 2014 21:20:36 +0000 (17:20 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 10 Aug 2014 22:12:02 +0000 (18:12 -0400)
commit115d4b4b33540da49e5d04135417392f7c4d54fc
tree89f75146aaed8f7fb3e92b56ec72927ee833df1f
parent84d6dd7858e9c21bc9d89723cba586736dea8369
e2fsck: flush out the superblock and bitmaps before printing final messages

A user who sees the message

***** REBOOT LINUX *****

or

***** FILE SYSTEM WAS MODIFIED *****

might think that e2fsck was complete even though we haven't finished
writing out the superblock or bitmap blocks, and then either forcibly
reboot or power cycle the box, or yank the USB key out while the
storage device is still being written (before e2fsck exits).

So rearrange the exit path of e2fsck so that we flush out the dirty
superblock/bg descriptors/bitmaps before we print the final message.
Also clean up this code so that the flow of control is easier to
understand, and add error checking to catch any errors (normally
caused by I/O errors writing to the disk) for these final writebacks.

Addresses-Debian-Bugs: #757543, #757544
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: Dan Jacobson <jidanni@jidanni.org>
e2fsck/problem.c
e2fsck/problem.h
e2fsck/unix.c