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