jbd2: clean up how the journal device name is printed

Calculate the journal device name once and stash it away in the
journal_s structure.  This avoids needing to call bdevname()
everywhere and reduces stack usage by not needing to allocate an
on-stack buffer.  In addition, we eliminate the '/' that can appear in
device names (e.g. "cciss/c0d0p9" --- see kernel bugzilla #11321) that
can cause problems when creating proc directory names, and include the
inode number to support ocfs2 which creates multiple journals with
different inode numbers.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
Theodore Ts'o
2008-09-16 14:36:17 -04:00
parent 899fc1a4cf
commit 05496769e5
4 changed files with 24 additions and 50 deletions

View File

@@ -1476,15 +1476,9 @@ static int ext4_setup_super(struct super_block *sb, struct ext4_super_block *es,
EXT4_INODES_PER_GROUP(sb),
sbi->s_mount_opt);
if (EXT4_SB(sb)->s_journal->j_inode == NULL) {
char b[BDEVNAME_SIZE];
printk(KERN_INFO "EXT4 FS on %s, external journal on %s\n",
sb->s_id, bdevname(EXT4_SB(sb)->s_journal->j_dev, b));
} else {
printk(KERN_INFO "EXT4 FS on %s, internal journal\n",
sb->s_id);
}
printk(KERN_INFO "EXT4 FS on %s, %s journal on %s\n",
sb->s_id, EXT4_SB(sb)->s_journal->j_inode ? "internal" :
"external", EXT4_SB(sb)->s_journal->j_devname);
return res;
}