ChangeLog, mke2fs.c, tune2fs.8.in:
  tune2fs.8.in: Fix minor display bug in the nroff.
  mke2fs.c (show_stats, write_inode_tables): Use the log10 function to
  	calculate the display of block numbers so that things look nice on an
  	80 character display.
  mke2fs.c (usage): Add the sparse-super-flag to the usage message.
ChangeLog, e2fsck.c, pass1.c, pass2.c, problem.c, problem.h, unix.c:
  unix.c (main): Move ext2fs_close() after e2fsck_free_context() since
  	e2fsck_free_context may reference data in ctx->fs.
  e2fsck.c (e2fsck_reset_context): Make sure ctx->fs is non-NULL before
  	checking ctx->fs->dblist.
  pass1.c (e2fsck_pass1): Use the device check subroutine on FIFO's and
  	Socket's, so that we catch bogus immutable inodes.
  pass2.c (process_bad_inode): Process bad socket and fifo's.
  problem.h, problem.c: Define new problem codes PR_2_BAD_FIFO and
  	PR_2_BAD_SOCKET.

diff --git a/e2fsck/pass2.c b/e2fsck/pass2.c
index 1767d00..5453c61 100644
--- a/e2fsck/pass2.c
+++ b/e2fsck/pass2.c
@@ -615,6 +615,14 @@
 	    && !e2fsck_pass1_check_device_inode(&inode))
 		problem = PR_2_BAD_BLOCK_DEV;
 
+	if (LINUX_S_ISFIFO(inode.i_mode)
+	    && !e2fsck_pass1_check_device_inode(&inode))
+		problem = PR_2_BAD_FIFO;
+		
+	if (LINUX_S_ISSOCK(inode.i_mode)
+	    && !e2fsck_pass1_check_device_inode(&inode))
+		problem = PR_2_BAD_SOCKET;
+
 	if (problem) {
 		if (fix_problem(ctx, problem, &pctx)) {
 			deallocate_inode(ctx, ino, 0);