In e2fsck, if the number of mounts until the next forced filesystem
check is 5 or less, mention this to the user.  (Addresses 
Debian bug #157194)

diff --git a/e2fsck/ChangeLog b/e2fsck/ChangeLog
index 094555a..8724eb2 100644
--- a/e2fsck/ChangeLog
+++ b/e2fsck/ChangeLog
@@ -1,5 +1,9 @@
 2003-09-13  Theodore Ts'o  <tytso@mit.edu>
 
+	* unix.c (check_if_skip): If the number of mounts until the next
+		forced filesystem check is 5 or less, mention this to the
+		user.  (Addresses Debian bug #157194)
+
 	* pass1.c (e2fsck_pass1), problem.h (PR_1_BB_FS_BLOCK), 
 	  problem.c (PR_1_BB_FS_BLOCK, PR_1_BBINODE_BAD_METABLOCK_PROMPT): 
 		Fix up the handling of corrupted indirect blocks in the 
diff --git a/e2fsck/unix.c b/e2fsck/unix.c
index 9109773..211a127 100644
--- a/e2fsck/unix.c
+++ b/e2fsck/unix.c
@@ -209,6 +209,8 @@
 	ext2_filsys fs = ctx->fs;
 	const char *reason = NULL;
 	unsigned int reason_arg = 0;
+	long next_check;
+	time_t now = time(0);
 	
 	if ((ctx->options & E2F_OPT_FORCE) || bad_blocks_file ||
 	    cflag || swapfs)
@@ -224,10 +226,10 @@
 		reason = _(" has been mounted %u times without being checked");
 		reason_arg = fs->super->s_mnt_count;
 	} else if (fs->super->s_checkinterval &&
-		 time(0) >= (fs->super->s_lastcheck +
+		 now >= (fs->super->s_lastcheck +
 			     fs->super->s_checkinterval)) {
 		reason = _(" has gone %u days without being checked");
-		reason_arg = (time(0) - fs->super->s_lastcheck)/(3600*24);
+		reason_arg = (now - fs->super->s_lastcheck)/(3600*24);
 	}
 	if (reason) {
 		fputs(ctx->device_name, stdout);
@@ -235,11 +237,26 @@
 		fputs(_(", check forced.\n"), stdout);
 		return;
 	}
-	printf(_("%s: clean, %d/%d files, %d/%d blocks\n"), ctx->device_name,
+	printf(_("%s: clean, %d/%d files, %d/%d blocks"), ctx->device_name,
 	       fs->super->s_inodes_count - fs->super->s_free_inodes_count,
 	       fs->super->s_inodes_count,
 	       fs->super->s_blocks_count - fs->super->s_free_blocks_count,
 	       fs->super->s_blocks_count);
+	next_check = 100000;
+	if (fs->super->s_max_mnt_count > 0) {
+		next_check = fs->super->s_max_mnt_count - fs->super->s_mnt_count;
+		if (next_check <= 0) 
+			next_check = 1;
+	}
+	if (now >= (fs->super->s_lastcheck + fs->super->s_checkinterval))
+		next_check = 1;
+	if (next_check <= 5) {
+		if (next_check == 1)
+			fputs(_(" (check after next mount)"), stdout);
+		else
+			printf(_(" (check in %d mounts)"), next_check);
+	}
+	fputc('\n', stdout);
 	ext2fs_close(fs);
 	ctx->fs = NULL;
 	e2fsck_free_context(ctx);