reiserfs-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2/2] reiserfs: Add mount counting
@ 2007-11-26 22:42 Jeff Mahoney
  2007-12-03 19:46 ` Jeff Mahoney
  0 siblings, 1 reply; 16+ messages in thread
From: Jeff Mahoney @ 2007-11-26 22:42 UTC (permalink / raw)
  To: ReiserFS Mailing List, Edward Shishkin

 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.

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	2007-11-26 17:09:51.000000000 -0500
+++ b/fs/reiserfs/super.c	2007-11-26 17:32:21.000000000 -0500
@@ -1239,6 +1239,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;
@@ -1764,7 +1766,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	2007-11-26 17:09:58.000000000 -0500
+++ b/include/linux/reiserfs_fs.h	2007-11-26 17:22:35.000000000 -0500
@@ -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	2007-11-26 17:09:58.000000000 -0500
+++ b/include/linux/reiserfs_fs_sb.h	2007-11-26 17:24:54.000000000 -0500
@@ -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) \

-- 
Jeff Mahoney
SUSE Labs

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2008-01-24 19:52 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-26 22:42 [PATCH 2/2] reiserfs: Add mount counting Jeff Mahoney
2007-12-03 19:46 ` Jeff Mahoney
2007-12-03 20:36   ` Edward Shishkin
2007-12-03 20:40     ` Jeff Mahoney
2007-12-03 20:51       ` Edward Shishkin
2007-12-03 21:32         ` Jeff Mahoney
2007-12-03 22:56           ` Edward Shishkin
2007-12-03 23:00             ` Jeff Mahoney
2007-12-05 12:22               ` Ric Wheeler
2007-12-05 13:01                 ` Vladimir Saveliev
2007-12-05 15:32                   ` Jeff Mahoney
2007-12-05 15:39                     ` Ric Wheeler
2007-12-05 15:52                       ` Jeff Mahoney
2007-12-05 17:53                     ` Vladimir Saveliev
2007-12-05 18:18                       ` Ric Wheeler
2008-01-24 19:52               ` Jeff Mahoney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).