--- /dev/null
+From: Jeff Mahoney <jeffm@suse.com>
+Subject: reiserfs: add support for mount count incrementing
+
+ The following patch adds the fields for tracking mount counts and
+ last fsck timestamps to the superblock. It also increments the mount
+ count on every read-write mount. These fields have been reserved on
+ the reiserfs-devel list, and will be a part of the next reiserfsprogs
+ release.
+
+Signed-off-by: Jeff Mahoney <jeffm@suse.com>
+---
+ fs/reiserfs/super.c | 6 +++++-
+ include/linux/reiserfs_fs.h | 6 +++++-
+ include/linux/reiserfs_fs_sb.h | 3 +++
+ 3 files changed, 13 insertions(+), 2 deletions(-)
+
+--- a/fs/reiserfs/super.c
++++ b/fs/reiserfs/super.c
+@@ -1278,6 +1278,8 @@ static int reiserfs_remount(struct super
+ REISERFS_SB(s)->s_mount_state = sb_umount_state(rs);
+ s->s_flags &= ~MS_RDONLY;
+ set_sb_umount_state(rs, REISERFS_ERROR_FS);
++ if (!old_format_only(s))
++ set_sb_mnt_count(rs, sb_mnt_count(rs) + 1);
+ /* mark_buffer_dirty (SB_BUFFER_WITH_SB (s), 1); */
+ journal_mark_dirty(&th, s, SB_BUFFER_WITH_SB(s));
+ REISERFS_SB(s)->s_mount_state = REISERFS_VALID_FS;
+@@ -1817,7 +1819,9 @@ static int reiserfs_fill_super(struct su
+ } else if (!silent) {
+ reiserfs_info(s, "using 3.5.x disk format\n");
+ }
+- }
++ } else
++ set_sb_mnt_count(rs, sb_mnt_count(rs) + 1);
++
+
+ journal_mark_dirty(&th, s, SB_BUFFER_WITH_SB(s));
+ errval = journal_end(&th, s, 1);
+--- a/include/linux/reiserfs_fs.h
++++ b/include/linux/reiserfs_fs.h
+@@ -171,7 +171,11 @@ struct reiserfs_super_block {
+ __le32 s_flags; /* Right now used only by inode-attributes, if enabled */
+ unsigned char s_uuid[16]; /* filesystem unique identifier */
+ unsigned char s_label[16]; /* filesystem volume label */
+- char s_unused[88]; /* zero filled by mkreiserfs and
++ __le16 s_mnt_count; /* Count of mounts since last fsck */
++ __le16 s_max_mnt_count; /* Maximum mounts before check */
++ __le32 s_lastcheck; /* Timestamp of last fsck */
++ __le32 s_check_interval; /* Interval between checks */
++ char s_unused[76]; /* zero filled by mkreiserfs and
+ * reiserfs_convert_objectid_map_v1()
+ * so any additions must be updated
+ * there as well. */
+--- a/include/linux/reiserfs_fs_sb.h
++++ b/include/linux/reiserfs_fs_sb.h
+@@ -73,6 +73,9 @@ typedef enum {
+ #define sb_version(sbp) (le16_to_cpu((sbp)->s_v1.s_version))
+ #define set_sb_version(sbp,v) ((sbp)->s_v1.s_version = cpu_to_le16(v))
+
++#define sb_mnt_count(sbp) (le16_to_cpu((sbp)->s_mnt_count))
++#define set_sb_mnt_count(sbp, v) ((sbp)->s_mnt_count = cpu_to_le16(v))
++
+ #define sb_reserved_for_journal(sbp) \
+ (le16_to_cpu((sbp)->s_v1.s_reserved_for_journal))
+ #define set_sb_reserved_for_journal(sbp,v) \