Add a new superblock field, s_mkfs_time, which indicates when
the filesystem was created.  It is set via mke2fs, and printed 
via list_super2() (which is called by dumpe2fs).  

Also, list_super2() will now print "n/a" if the last mount time
(s_mtime) is zero.

diff --git a/lib/e2p/ChangeLog b/lib/e2p/ChangeLog
index 8c10fc1..252e40c 100644
--- a/lib/e2p/ChangeLog
+++ b/lib/e2p/ChangeLog
@@ -1,3 +1,9 @@
+2002-10-25  Theodore Ts'o  <tytso@mit.edu>
+
+	* ls.c (list_super2): Print the s_mkfs_time field if it is
+		present.  If the last mount time (s_mtime) is zero, print
+		"n/a".
+
 2002-10-20  Theodore Ts'o  <tytso@valinux.com>
 
 	* e2p.h (e2p_string2mntopt), mntopts.c, ls.c (print_mntopts):
diff --git a/lib/e2p/ls.c b/lib/e2p/ls.c
index cc3e3ca..9e2b1b5 100644
--- a/lib/e2p/ls.c
+++ b/lib/e2p/ls.c
@@ -207,11 +207,16 @@
 	fprintf(f, "Fragments per group:      %u\n", sb->s_frags_per_group);
 	fprintf(f, "Inodes per group:         %u\n", sb->s_inodes_per_group);
 	fprintf(f, "Inode blocks per group:   %u\n", inode_blocks_per_group);
-	tm = sb->s_mtime;
 	if (sb->s_first_meta_bg)
 		fprintf(f, "First meta block group:   %u\n",
 			sb->s_first_meta_bg);
-	fprintf(f, "Last mount time:          %s", ctime(&tm));
+	if (sb->s_mkfs_time) {
+		tm = sb->s_mkfs_time;
+		fprintf(f, "Filesystem created:       %s", ctime(&tm));
+	}
+	tm = sb->s_mtime;
+	fprintf(f, "Last mount time:          %s",
+		sb->s_mtime ? ctime(&tm) : "n/a\n");
 	tm = sb->s_wtime;
 	fprintf(f, "Last write time:          %s", ctime(&tm));
 	fprintf(f, "Mount count:              %u\n", sb->s_mnt_count);
diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog
index 5d0974f..079615c 100644
--- a/lib/ext2fs/ChangeLog
+++ b/lib/ext2fs/ChangeLog
@@ -1,3 +1,11 @@
+2002-10-25  Theodore Ts'o  <tytso@mit.edu>
+
+	* ext2_fs.h: Add a new superblock field, s_mkfs_time, so that we
+		know when a filesystem was created.  (Sometimes this can
+		be useful...)
+
+	* initialize.c (ext2fs_initialize): Set the s_mkfs_time field.
+
 2002-10-20  Theodore Ts'o  <tytso@valinux.com>
 
 	* ext2_fs.h (EXT3_DEFM_JMODE): Add new default mount options for
diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h
index ca53902..7cd679d 100644
--- a/lib/ext2fs/ext2_fs.h
+++ b/lib/ext2fs/ext2_fs.h
@@ -440,7 +440,8 @@
 	__u16	s_reserved_word_pad;
 	__u32	s_default_mount_opts;
 	__u32	s_first_meta_bg;	/* First metablock group */
-	__u32	s_reserved[190];	/* Padding to the end of the block */
+	__u32	s_mkfs_time;		/* When the filesystem was created */
+	__u32	s_reserved[189];	/* Padding to the end of the block */
 };
 
 /*
diff --git a/lib/ext2fs/initialize.c b/lib/ext2fs/initialize.c
index d9be945..ecb27d7 100644
--- a/lib/ext2fs/initialize.c
+++ b/lib/ext2fs/initialize.c
@@ -127,7 +127,7 @@
 	}
 
 	set_field(s_checkinterval, EXT2_DFL_CHECKINTERVAL);
-	super->s_lastcheck = time(NULL);
+	super->s_mkfs_time = super->s_lastcheck = time(NULL);
 
 	super->s_creator_os = CREATOR_OS;