[PATCH 2/3][RFC](Repost) ext3: add a message in remount/umount for ext3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Toshiyuki Okajima <toshi.okajima@xxxxxxxxxxxxxx>

ext3 doesn't log a record of having unmounted the filesystem. And ext3 doesn't 
log a record when the filesystem is remounted also with read-only. Therefore 
in the system log, we cannot judge whether or not at the certain time this 
filesystem user touches it.
For enterprise users, they often want to know when a certain filesystem is 
mounted/remounted/unmounted.

So, we output the message to the system log when the filesystem is 
remounted/unmounted.

Signed-off-by: Toshiyuki Okajima <toshi.okajima@xxxxxxxxxxxxxx>
---
 fs/ext3/super.c |   30 +++++++++++++++++++++---------
 1 file changed, 21 insertions(+), 9 deletions(-)

diff -Nurp linux-2.6.31.orig/fs/ext3/super.c linux-2.6.31/fs/ext3/super.c
--- linux-2.6.31.orig/fs/ext3/super.c	2009-09-10 07:13:59.000000000 +0900
+++ linux-2.6.31/fs/ext3/super.c	2009-09-16 14:52:03.000000000 +0900
@@ -328,6 +328,24 @@ void ext3_update_dynamic_rev(struct supe
 	 */
 }
 
+static void ext3_print_mount_message(struct super_block *sb, 
+					int is_remount)
+{
+	char jbuf[BDEVNAME_SIZE + 20] = "internal journal";
+
+	if (EXT3_SB(sb)->s_journal->j_inode == NULL) {
+		sprintf(jbuf, "external journal on ");
+		(void)bdevname(EXT3_SB(sb)->s_journal->j_dev, jbuf + 20);
+	}
+	printk(KERN_INFO "EXT3 FS %s on %s, %s\n", 
+			is_remount? "remounted": "mounted", sb->s_id, jbuf);
+}
+
+static void ext3_print_umount_message(struct super_block *sb)
+{
+	printk(KERN_INFO "EXT3 FS unmounted from %s\n", sb->s_id);
+}
+
 /*
  * Open the external journal device
  */
@@ -448,6 +466,7 @@ static void ext3_put_super (struct super
 	sb->s_fs_info = NULL;
 	kfree(sbi->s_blockgroup_lock);
 	kfree(sbi);
+	ext3_print_umount_message(sb);
 
 	unlock_kernel();
 }
@@ -1296,15 +1315,6 @@ static int ext3_setup_super(struct super
 			EXT3_INODES_PER_GROUP(sb),
 			sbi->s_mount_opt);
 
-	printk(KERN_INFO "EXT3 FS on %s, ", sb->s_id);
-	if (EXT3_SB(sb)->s_journal->j_inode == NULL) {
-		char b[BDEVNAME_SIZE];
-
-		printk("external journal on %s\n",
-			bdevname(EXT3_SB(sb)->s_journal->j_dev, b));
-	} else {
-		printk("internal journal\n");
-	}
 	return res;
 }
 
@@ -1972,6 +1982,7 @@ static int ext3_fill_super (struct super
 	}
 
 	ext3_setup_super (sb, es, sb->s_flags & MS_RDONLY);
+	ext3_print_mount_message(sb, 0);
 	/*
 	 * akpm: core read_super() calls in here with the superblock locked.
 	 * That deadlocks, because orphan cleanup needs to lock the superblock
@@ -2599,6 +2610,7 @@ static int ext3_remount (struct super_bl
 		    old_opts.s_qf_names[i] != sbi->s_qf_names[i])
 			kfree(old_opts.s_qf_names[i]);
 #endif
+	ext3_print_mount_message(sb, 1);
 	unlock_super(sb);
 	unlock_kernel();
 	return 0;
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux