> EXT3: Change all super.c messages to print the device > > I had a problem where it was unclear to which device a ext3 message belonged. > Not all of them them print it. > > This patch changes ext3 super.c to include the device name with all > warning/error messages, by using a new utility function ext3_msg. > It's a rather large patch, but very mechanic. I left debug printks > alone. > > The normal mount output looks a little more regular now because near all > messages are in the same format. > > Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx> Ted, did you pick up this cleanup? I don't see any reply or the patch being merged... The cleanup looks nice. Honza > > --- > fs/ext3/super.c | 355 ++++++++++++++++++++++++------------------------ > include/linux/ext3_fs.h | 2 > 2 files changed, 184 insertions(+), 173 deletions(-) > > Index: linux-2.6.30-rc3-ak/fs/ext3/super.c > =================================================================== > --- linux-2.6.30-rc3-ak.orig/fs/ext3/super.c 2009-04-08 12:15:14.000000000 +0200 > +++ linux-2.6.30-rc3-ak/fs/ext3/super.c 2009-04-26 20:35:21.000000000 +0200 > @@ -175,7 +175,7 @@ > journal_abort(journal, -EIO); > } > if (test_opt (sb, ERRORS_RO)) { > - printk (KERN_CRIT "Remounting filesystem read-only\n"); > + ext3_msg(sb, KERN_CRIT, "Remounting filesystem read-only"); > sb->s_flags |= MS_RDONLY; > } > ext3_commit_super(sb, es, 1); > @@ -269,8 +269,6 @@ > { > va_list args; > > - printk (KERN_CRIT "ext3_abort called.\n"); > - > va_start(args, fmt); > printk(KERN_CRIT "EXT3-fs error (device %s): %s: ",sb->s_id, function); > vprintk(fmt, args); > @@ -283,7 +281,7 @@ > if (sb->s_flags & MS_RDONLY) > return; > > - printk(KERN_CRIT "Remounting filesystem read-only\n"); > + ext3_msg(sb, KERN_CRIT, "Remounting filesystem read-only"); > EXT3_SB(sb)->s_mount_state |= EXT3_ERROR_FS; > sb->s_flags |= MS_RDONLY; > EXT3_SB(sb)->s_mount_opt |= EXT3_MOUNT_ABORT; > @@ -291,6 +289,18 @@ > journal_abort(EXT3_SB(sb)->s_journal, -EIO); > } > > +void ext3_msg (struct super_block * sb, const char *prefix, > + const char *fmt, ...) > +{ > + va_list args; > + > + va_start(args, fmt); > + printk("%sEXT3-fs (%s): ", prefix, sb->s_id); > + vprintk(fmt, args); > + printk("\n"); > + va_end(args); > +} > + > void ext3_warning (struct super_block * sb, const char * function, > const char * fmt, ...) > { > @@ -332,7 +342,7 @@ > /* > * Open the external journal device > */ > -static struct block_device *ext3_blkdev_get(dev_t dev) > +static struct block_device *ext3_blkdev_get(dev_t dev, struct super_block *sb) > { > struct block_device *bdev; > char b[BDEVNAME_SIZE]; > @@ -343,7 +353,7 @@ > return bdev; > > fail: > - printk(KERN_ERR "EXT3: failed to open journal device %s: %ld\n", > + ext3_msg(sb, "failed to open journal device %s: %ld", > __bdevname(dev, b), PTR_ERR(bdev)); > return NULL; > } > @@ -850,7 +860,7 @@ > {Opt_err, NULL}, > }; > > -static ext3_fsblk_t get_sb_block(void **data) > +static ext3_fsblk_t get_sb_block(void **data, struct super_block *sb) > { > ext3_fsblk_t sb_block; > char *options = (char *) *data; > @@ -861,7 +871,7 @@ > /*todo: use simple_strtoll with >32bit ext3 */ > sb_block = simple_strtoul(options, &options, 0); > if (*options && *options != ',') { > - printk("EXT3-fs: Invalid sb specification: %s\n", > + ext3_msg(sb, "Invalid sb specification: %s", > (char *) *data); > return 1; > } > @@ -961,7 +971,7 @@ > #else > case Opt_user_xattr: > case Opt_nouser_xattr: > - printk("EXT3 (no)user_xattr options not supported\n"); > + ext3_msg(sb, KERN_ERR, "(no)user_xattr options not supported"); > break; > #endif > #ifdef CONFIG_EXT3_FS_POSIX_ACL > @@ -974,7 +984,7 @@ > #else > case Opt_acl: > case Opt_noacl: > - printk("EXT3 (no)acl options not supported\n"); > + ext3_msg(sb, KERN_ERR "(no)acl options not supported"); > break; > #endif > case Opt_reservation: > @@ -990,16 +1000,16 @@ > user to specify an existing inode to be the > journal file. */ > if (is_remount) { > - printk(KERN_ERR "EXT3-fs: cannot specify " > - "journal on remount\n"); > + ext3_msg(sb, KERN_ERR, > + "Cannot specify journal on remount"); > return 0; > } > set_opt (sbi->s_mount_opt, UPDATE_JOURNAL); > break; > case Opt_journal_inum: > if (is_remount) { > - printk(KERN_ERR "EXT3-fs: cannot specify " > - "journal on remount\n"); > + ext3_msg(sb, KERN_ERR, > + "Cannot specify journal on remount"); > return 0; > } > if (match_int(&args[0], &option)) > @@ -1008,8 +1018,8 @@ > break; > case Opt_journal_dev: > if (is_remount) { > - printk(KERN_ERR "EXT3-fs: cannot specify " > - "journal on remount\n"); > + ext3_msg(sb, KERN_ERR, > + "Cannot specify journal on remount"); > return 0; > } > if (match_int(&args[0], &option)) > @@ -1040,9 +1050,8 @@ > if (is_remount) { > if ((sbi->s_mount_opt & EXT3_MOUNT_DATA_FLAGS) > != data_opt) { > - printk(KERN_ERR > - "EXT3-fs: cannot change data " > - "mode on remount\n"); > + ext3_msg(sb, KERN_ERR, > + "Cannot change data mode on remount"); > return 0; > } > } else { > @@ -1065,31 +1074,31 @@ > set_qf_name: > if (sb_any_quota_loaded(sb) && > !sbi->s_qf_names[qtype]) { > - printk(KERN_ERR > - "EXT3-fs: Cannot change journaled " > - "quota options when quota turned on.\n"); > + ext3_msg(sb, KERN_ERR, > + "Cannot change journaled " > + "quota options when quota turned on"); > return 0; > } > qname = match_strdup(&args[0]); > if (!qname) { > - printk(KERN_ERR > - "EXT3-fs: not enough memory for " > - "storing quotafile name.\n"); > + ext3_msg(sb, KERN_ERR, > + "Not enough memory for " > + "storing quotafile name"); > return 0; > } > if (sbi->s_qf_names[qtype] && > strcmp(sbi->s_qf_names[qtype], qname)) { > - printk(KERN_ERR > - "EXT3-fs: %s quota file already " > - "specified.\n", QTYPE2NAME(qtype)); > + ext3_msg(sb, KERN_ERR, > + "%s quota file already " > + "specified", QTYPE2NAME(qtype)); > kfree(qname); > return 0; > } > sbi->s_qf_names[qtype] = qname; > if (strchr(sbi->s_qf_names[qtype], '/')) { > - printk(KERN_ERR > - "EXT3-fs: quotafile must be on " > - "filesystem root.\n"); > + ext3_msg(sb, KERN_ERR, > + "quotafile must be on " > + "filesystem root"); > kfree(sbi->s_qf_names[qtype]); > sbi->s_qf_names[qtype] = NULL; > return 0; > @@ -1104,9 +1113,9 @@ > clear_qf_name: > if (sb_any_quota_loaded(sb) && > sbi->s_qf_names[qtype]) { > - printk(KERN_ERR "EXT3-fs: Cannot change " > + ext3_msg(sb, KERN_ERR, "Cannot change " > "journaled quota options when " > - "quota turned on.\n"); > + "quota turned on"); > return 0; > } > /* > @@ -1123,9 +1132,9 @@ > set_qf_format: > if (sb_any_quota_loaded(sb) && > sbi->s_jquota_fmt != qfmt) { > - printk(KERN_ERR "EXT3-fs: Cannot change " > + ext3_msg(sb, KERN_ERR, "Cannot change " > "journaled quota options when " > - "quota turned on.\n"); > + "quota turned on"); > return 0; > } > sbi->s_jquota_fmt = qfmt; > @@ -1141,8 +1150,8 @@ > break; > case Opt_noquota: > if (sb_any_quota_loaded(sb)) { > - printk(KERN_ERR "EXT3-fs: Cannot change quota " > - "options when quota turned on.\n"); > + ext3_msg(sb, KERN_ERR, "Cannot change quota " > + "options when quota turned on"); > return 0; > } > clear_opt(sbi->s_mount_opt, QUOTA); > @@ -1153,8 +1162,8 @@ > case Opt_quota: > case Opt_usrquota: > case Opt_grpquota: > - printk(KERN_ERR > - "EXT3-fs: quota options not supported.\n"); > + ext3_msg(sb, KERN_ERR, > + "quota options not supported"); > break; > case Opt_usrjquota: > case Opt_grpjquota: > @@ -1162,9 +1171,8 @@ > case Opt_offgrpjquota: > case Opt_jqfmt_vfsold: > case Opt_jqfmt_vfsv0: > - printk(KERN_ERR > - "EXT3-fs: journaled quota options not " > - "supported.\n"); > + ext3_msg(sb, KERN_ERR, > + "journaled quota options not supported"); > break; > case Opt_noquota: > break; > @@ -1184,8 +1192,9 @@ > break; > case Opt_resize: > if (!is_remount) { > - printk("EXT3-fs: resize option only available " > - "for remount\n"); > + ext3_msg(sb, KERN_ERR, > + "resize option only available " > + "for remount"); > return 0; > } > if (match_int(&args[0], &option) != 0) > @@ -1199,9 +1208,9 @@ > clear_opt(sbi->s_mount_opt, NOBH); > break; > default: > - printk (KERN_ERR > - "EXT3-fs: Unrecognized mount option \"%s\" " > - "or missing value\n", p); > + ext3_msg(sb, KERN_ERR, > + "Unrecognized mount option \"%s\" " > + "or missing value", p); > return 0; > } > } > @@ -1219,21 +1228,21 @@ > (sbi->s_mount_opt & EXT3_MOUNT_GRPQUOTA)) || > (sbi->s_qf_names[GRPQUOTA] && > (sbi->s_mount_opt & EXT3_MOUNT_USRQUOTA))) { > - printk(KERN_ERR "EXT3-fs: old and new quota " > - "format mixing.\n"); > + ext3_msg(sb, KERN_ERR, "old and new quota " > + "format mixing"); > return 0; > } > > if (!sbi->s_jquota_fmt) { > - printk(KERN_ERR "EXT3-fs: journaled quota format " > - "not specified.\n"); > + ext3_msg(sb, KERN_ERR, "journaled quota format " > + "not specified"); > return 0; > } > } else { > if (sbi->s_jquota_fmt) { > - printk(KERN_ERR "EXT3-fs: journaled quota format " > + ext3_msg(sb, KERN_ERR, "journaled quota format " > "specified with no journaling " > - "enabled.\n"); > + "enabled"); > return 0; > } > } > @@ -1248,31 +1257,31 @@ > int res = 0; > > if (le32_to_cpu(es->s_rev_level) > EXT3_MAX_SUPP_REV) { > - printk (KERN_ERR "EXT3-fs warning: revision level too high, " > - "forcing read-only mode\n"); > + ext3_msg(sb, KERN_ERR, "warning: revision level too high, " > + "forcing read-only mode"); > res = MS_RDONLY; > } > if (read_only) > return res; > if (!(sbi->s_mount_state & EXT3_VALID_FS)) > - printk (KERN_WARNING "EXT3-fs warning: mounting unchecked fs, " > - "running e2fsck is recommended\n"); > + ext3_msg(sb, KERN_WARNING, "warning: mounting unchecked fs, " > + "running e2fsck is recommended"); > else if ((sbi->s_mount_state & EXT3_ERROR_FS)) > - printk (KERN_WARNING > - "EXT3-fs warning: mounting fs with errors, " > - "running e2fsck is recommended\n"); > + ext3_msg(sb, KERN_WARNING, > + "warning: mounting fs with errors, " > + "running e2fsck is recommended"); > else if ((__s16) le16_to_cpu(es->s_max_mnt_count) >= 0 && > le16_to_cpu(es->s_mnt_count) >= > (unsigned short) (__s16) le16_to_cpu(es->s_max_mnt_count)) > - printk (KERN_WARNING > - "EXT3-fs warning: maximal mount count reached, " > - "running e2fsck is recommended\n"); > + ext3_msg (sb, KERN_WARNING, > + "warning: maximal mount count reached, " > + "running e2fsck is recommended"); > else if (le32_to_cpu(es->s_checkinterval) && > (le32_to_cpu(es->s_lastcheck) + > le32_to_cpu(es->s_checkinterval) <= get_seconds())) > - printk (KERN_WARNING > - "EXT3-fs warning: checktime reached, " > - "running e2fsck is recommended\n"); > + ext3_msg(sb, KERN_WARNING, > + "warning: checktime reached, " > + "running e2fsck is recommended"); > #if 0 > /* @@@ We _will_ want to clear the valid bit if we find > inconsistencies, to force a fsck at reboot. But for > @@ -1297,7 +1306,7 @@ > EXT3_INODES_PER_GROUP(sb), > sbi->s_mount_opt); > > - printk(KERN_INFO "EXT3 FS on %s, ", sb->s_id); > + printk(KERN_INFO "EXT3-FS (%s): ", sb->s_id); > if (EXT3_SB(sb)->s_journal->j_inode == NULL) { > char b[BDEVNAME_SIZE]; > > @@ -1398,8 +1407,8 @@ > } > > if (bdev_read_only(sb->s_bdev)) { > - printk(KERN_ERR "EXT3-fs: write access " > - "unavailable, skipping orphan cleanup.\n"); > + ext3_msg(sb, KERN_ERR, "write access " > + "unavailable, skipping orphan cleanup"); > return; > } > > @@ -1413,8 +1422,7 @@ > } > > if (s_flags & MS_RDONLY) { > - printk(KERN_INFO "EXT3-fs: %s: orphan cleanup on readonly fs\n", > - sb->s_id); > + ext3_msg(sb, KERN_INFO, "orphan cleanup on readonly fs"); > sb->s_flags &= ~MS_RDONLY; > } > #ifdef CONFIG_QUOTA > @@ -1425,9 +1433,9 @@ > if (EXT3_SB(sb)->s_qf_names[i]) { > int ret = ext3_quota_on_mount(sb, i); > if (ret < 0) > - printk(KERN_ERR > - "EXT3-fs: Cannot turn on journaled " > - "quota: error %d\n", ret); > + ext3_msg(sb, KERN_ERR, > + "Cannot turn on journaled " > + "quota: error %d", ret); > } > } > #endif > @@ -1465,11 +1473,11 @@ > #define PLURAL(x) (x), ((x)==1) ? "" : "s" > > if (nr_orphans) > - printk(KERN_INFO "EXT3-fs: %s: %d orphan inode%s deleted\n", > - sb->s_id, PLURAL(nr_orphans)); > + ext3_msg(sb, KERN_INFO, "%d orphan inode%s deleted", > + PLURAL(nr_orphans)); > if (nr_truncates) > - printk(KERN_INFO "EXT3-fs: %s: %d truncate%s cleaned up\n", > - sb->s_id, PLURAL(nr_truncates)); > + ext3_msg(sb, KERN_INFO, "%5d truncate%s cleaned up", > + PLURAL(nr_truncates)); > #ifdef CONFIG_QUOTA > /* Turn quotas off */ > for (i = 0; i < MAXQUOTAS; i++) { > @@ -1553,7 +1561,7 @@ > struct ext3_super_block *es = NULL; > struct ext3_sb_info *sbi; > ext3_fsblk_t block; > - ext3_fsblk_t sb_block = get_sb_block(&data); > + ext3_fsblk_t sb_block = get_sb_block(&data, sb); > ext3_fsblk_t logic_sb_block; > unsigned long offset = 0; > unsigned int journal_inum = 0; > @@ -1589,7 +1597,7 @@ > > blocksize = sb_min_blocksize(sb, EXT3_MIN_BLOCK_SIZE); > if (!blocksize) { > - printk(KERN_ERR "EXT3-fs: unable to set blocksize\n"); > + ext3_msg(sb, KERN_ERR, "unable to set blocksize"); > goto out_fail; > } > > @@ -1605,7 +1613,7 @@ > } > > if (!(bh = sb_bread(sb, logic_sb_block))) { > - printk (KERN_ERR "EXT3-fs: unable to read superblock\n"); > + ext3_msg(sb, KERN_ERR, "unable to read superblock"); > goto out_fail; > } > /* > @@ -1664,9 +1672,9 @@ > (EXT3_HAS_COMPAT_FEATURE(sb, ~0U) || > EXT3_HAS_RO_COMPAT_FEATURE(sb, ~0U) || > EXT3_HAS_INCOMPAT_FEATURE(sb, ~0U))) > - printk(KERN_WARNING > - "EXT3-fs warning: feature flags set on rev 0 fs, " > - "running e2fsck is recommended\n"); > + ext3_msg(sb, KERN_WARNING, > + "warning: feature flags set on rev 0 fs, " > + "running e2fsck is recommended"); > /* > * Check feature flags regardless of the revision level, since we > * previously didn't change the revision level when setting the flags, > @@ -1674,25 +1682,27 @@ > */ > features = EXT3_HAS_INCOMPAT_FEATURE(sb, ~EXT3_FEATURE_INCOMPAT_SUPP); > if (features) { > - printk(KERN_ERR "EXT3-fs: %s: couldn't mount because of " > - "unsupported optional features (%x).\n", > - sb->s_id, le32_to_cpu(features)); > + ext3_msg(sb, KERN_ERR, > + "Couldn't mount because of " > + "unsupported optional features (%x)", > + le32_to_cpu(features)); > goto failed_mount; > } > features = EXT3_HAS_RO_COMPAT_FEATURE(sb, ~EXT3_FEATURE_RO_COMPAT_SUPP); > if (!(sb->s_flags & MS_RDONLY) && features) { > - printk(KERN_ERR "EXT3-fs: %s: couldn't mount RDWR because of " > - "unsupported optional features (%x).\n", > - sb->s_id, le32_to_cpu(features)); > + ext3_msg(sb, KERN_ERR, > + "Couldn't mount RDWR because of " > + "unsupported optional features (%x)", > + le32_to_cpu(features)); > goto failed_mount; > } > blocksize = BLOCK_SIZE << le32_to_cpu(es->s_log_block_size); > > if (blocksize < EXT3_MIN_BLOCK_SIZE || > blocksize > EXT3_MAX_BLOCK_SIZE) { > - printk(KERN_ERR > - "EXT3-fs: Unsupported filesystem blocksize %d on %s.\n", > - blocksize, sb->s_id); > + ext3_msg(sb, KERN_ERR, > + "Unsupported filesystem blocksize %d", > + blocksize); > goto failed_mount; > } > > @@ -1703,14 +1713,14 @@ > * than the hardware sectorsize for the machine. > */ > if (blocksize < hblock) { > - printk(KERN_ERR "EXT3-fs: blocksize %d too small for " > - "device blocksize %d.\n", blocksize, hblock); > + ext3_msg(sb, KERN_ERR, "blocksize %d too small for " > + "device blocksize %d", blocksize, hblock); > goto failed_mount; > } > > brelse (bh); > if (!sb_set_blocksize(sb, blocksize)) { > - printk(KERN_ERR "EXT3-fs: bad blocksize %d.\n", > + ext3_msg(sb, KERN_ERR, "bad blocksize %d.\n", > blocksize); > goto out_fail; > } > @@ -1718,15 +1728,15 @@ > offset = (sb_block * EXT3_MIN_BLOCK_SIZE) % blocksize; > bh = sb_bread(sb, logic_sb_block); > if (!bh) { > - printk(KERN_ERR > - "EXT3-fs: Can't read superblock on 2nd try.\n"); > + ext3_msg(sb, KERN_ERR, > + "Can't read superblock on 2nd try"); > goto failed_mount; > } > es = (struct ext3_super_block *)(((char *)bh->b_data) + offset); > sbi->s_es = es; > if (es->s_magic != cpu_to_le16(EXT3_SUPER_MAGIC)) { > - printk (KERN_ERR > - "EXT3-fs: Magic mismatch, very weird !\n"); > + ext3_msg(sb, KERN_ERR, > + "Magic mismatch, very weird!"); > goto failed_mount; > } > } > @@ -1742,8 +1752,8 @@ > if ((sbi->s_inode_size < EXT3_GOOD_OLD_INODE_SIZE) || > (!is_power_of_2(sbi->s_inode_size)) || > (sbi->s_inode_size > blocksize)) { > - printk (KERN_ERR > - "EXT3-fs: unsupported inode size: %d\n", > + ext3_msg(sb, KERN_ERR, > + "unsupported inode size: %d", > sbi->s_inode_size); > goto failed_mount; > } > @@ -1751,8 +1761,8 @@ > sbi->s_frag_size = EXT3_MIN_FRAG_SIZE << > le32_to_cpu(es->s_log_frag_size); > if (blocksize != sbi->s_frag_size) { > - printk(KERN_ERR > - "EXT3-fs: fragsize %lu != blocksize %u (unsupported)\n", > + ext3_msg(sb, KERN_ERR, > + "fragsize %lu != blocksize %u (unsupported)", > sbi->s_frag_size, blocksize); > goto failed_mount; > } > @@ -1789,28 +1799,28 @@ > } > > if (sbi->s_blocks_per_group > blocksize * 8) { > - printk (KERN_ERR > - "EXT3-fs: #blocks per group too big: %lu\n", > + ext3_msg(sb, KERN_ERR, > + "#blocks per group too big: %lu", > sbi->s_blocks_per_group); > goto failed_mount; > } > if (sbi->s_frags_per_group > blocksize * 8) { > - printk (KERN_ERR > - "EXT3-fs: #fragments per group too big: %lu\n", > + ext3_msg(sb, KERN_ERR, > + "#fragments per group too big: %lu", > sbi->s_frags_per_group); > goto failed_mount; > } > if (sbi->s_inodes_per_group > blocksize * 8) { > - printk (KERN_ERR > - "EXT3-fs: #inodes per group too big: %lu\n", > + ext3_msg(sb, KERN_ERR, > + "#inodes per group too big: %lu", > sbi->s_inodes_per_group); > goto failed_mount; > } > > if (le32_to_cpu(es->s_blocks_count) > > (sector_t)(~0ULL) >> (sb->s_blocksize_bits - 9)) { > - printk(KERN_ERR "EXT3-fs: filesystem on %s:" > - " too large to mount safely\n", sb->s_id); > + ext3_msg(sb, KERN_ERR, "filesystem" > + " too large to mount safely"); > if (sizeof(sector_t) < 8) > printk(KERN_WARNING "EXT3-fs: CONFIG_LBD not " > "enabled\n"); > @@ -1827,7 +1837,7 @@ > sbi->s_group_desc = kmalloc(db_count * sizeof (struct buffer_head *), > GFP_KERNEL); > if (sbi->s_group_desc == NULL) { > - printk (KERN_ERR "EXT3-fs: not enough memory\n"); > + ext3_msg(sb, KERN_ERR, "not enough memory"); > goto failed_mount; > } > > @@ -1837,14 +1847,14 @@ > block = descriptor_loc(sb, logic_sb_block, i); > sbi->s_group_desc[i] = sb_bread(sb, block); > if (!sbi->s_group_desc[i]) { > - printk (KERN_ERR "EXT3-fs: " > - "can't read group descriptor %d\n", i); > + ext3_msg (sb, KERN_ERR, > + "can't read group descriptor %d", i); > db_count = i; > goto failed_mount2; > } > } > if (!ext3_check_descriptors (sb)) { > - printk(KERN_ERR "EXT3-fs: group descriptors corrupted!\n"); > + ext3_msg(sb, KERN_ERR, "group descriptors corrupted!"); > goto failed_mount2; > } > sbi->s_gdb_count = db_count; > @@ -1862,7 +1872,7 @@ > ext3_count_dirs(sb)); > } > if (err) { > - printk(KERN_ERR "EXT3-fs: insufficient memory\n"); > + ext3_msg(sb, KERN_ERR, "insufficient memory"); > goto failed_mount3; > } > > @@ -1910,9 +1920,7 @@ > goto failed_mount3; > } else { > if (!silent) > - printk (KERN_ERR > - "ext3: No journal on filesystem on %s\n", > - sb->s_id); > + ext3_msg(sb, KERN_ERR, "No journal on filesystem"); > goto failed_mount3; > } > > @@ -1934,8 +1942,8 @@ > case EXT3_MOUNT_WRITEBACK_DATA: > if (!journal_check_available_features > (sbi->s_journal, 0, 0, JFS_FEATURE_INCOMPAT_REVOKE)) { > - printk(KERN_ERR "EXT3-fs: Journal does not support " > - "requested data journaling mode\n"); > + ext3_msg(sb, KERN_ERR, "Journal does not support " > + "requested data journaling mode"); > goto failed_mount4; > } > default: > @@ -1944,8 +1952,8 @@ > > if (test_opt(sb, NOBH)) { > if (!(test_opt(sb, DATA_FLAGS) == EXT3_MOUNT_WRITEBACK_DATA)) { > - printk(KERN_WARNING "EXT3-fs: Ignoring nobh option - " > - "its supported only with writeback mode\n"); > + ext3_msg(sb, KERN_WARNING, "Ignoring nobh option - " > + "its supported only with writeback mode"); > clear_opt(sbi->s_mount_opt, NOBH); > } > } > @@ -1956,18 +1964,18 @@ > > root = ext3_iget(sb, EXT3_ROOT_INO); > if (IS_ERR(root)) { > - printk(KERN_ERR "EXT3-fs: get root inode failed\n"); > + ext3_msg(sb, KERN_ERR, "get root inode failed"); > ret = PTR_ERR(root); > goto failed_mount4; > } > if (!S_ISDIR(root->i_mode) || !root->i_blocks || !root->i_size) { > iput(root); > - printk(KERN_ERR "EXT3-fs: corrupt root inode, run e2fsck\n"); > + ext3_msg(sb, KERN_ERR, "corrupt root inode, run e2fsck"); > goto failed_mount4; > } > sb->s_root = d_alloc_root(root); > if (!sb->s_root) { > - printk(KERN_ERR "EXT3-fs: get root dentry failed\n"); > + ext3_msg(sb, KERN_ERR, "get root dentry failed"); > iput(root); > ret = -ENOMEM; > goto failed_mount4; > @@ -1986,9 +1994,9 @@ > ext3_orphan_cleanup(sb, es); > EXT3_SB(sb)->s_mount_state &= ~EXT3_ORPHAN_FS; > if (needs_recovery) > - printk (KERN_INFO "EXT3-fs: recovery complete.\n"); > + ext3_msg(sb, KERN_INFO, "recovery complete"); > ext3_mark_recovery_complete(sb, es); > - printk (KERN_INFO "EXT3-fs: mounted filesystem with %s data mode.\n", > + ext3_msg(sb, KERN_INFO, "mounted filesystem with %s data mode", > test_opt(sb,DATA_FLAGS) == EXT3_MOUNT_JOURNAL_DATA ? "journal": > test_opt(sb,DATA_FLAGS) == EXT3_MOUNT_ORDERED_DATA ? "ordered": > "writeback"); > @@ -2065,27 +2073,27 @@ > > journal_inode = ext3_iget(sb, journal_inum); > if (IS_ERR(journal_inode)) { > - printk(KERN_ERR "EXT3-fs: no journal found.\n"); > + ext3_msg(sb, KERN_ERR, "no journal found"); > return NULL; > } > if (!journal_inode->i_nlink) { > make_bad_inode(journal_inode); > iput(journal_inode); > - printk(KERN_ERR "EXT3-fs: journal inode is deleted.\n"); > + ext3_msg(sb, KERN_ERR, "journal inode is deleted"); > return NULL; > } > > jbd_debug(2, "Journal inode found at %p: %Ld bytes\n", > journal_inode, journal_inode->i_size); > if (!S_ISREG(journal_inode->i_mode)) { > - printk(KERN_ERR "EXT3-fs: invalid journal inode.\n"); > + ext3_msg(sb, KERN_ERR, "invalid journal inode"); > iput(journal_inode); > return NULL; > } > > journal = journal_init_inode(journal_inode); > if (!journal) { > - printk(KERN_ERR "EXT3-fs: Could not load journal inode\n"); > + ext3_msg(sb, KERN_ERR, "Could not load journal inode"); > iput(journal_inode); > return NULL; > } > @@ -2094,6 +2102,8 @@ > return journal; > } > > +/* RED-PEN should we print the external journal device here? */ > + > static journal_t *ext3_get_dev_journal(struct super_block *sb, > dev_t j_dev) > { > @@ -2107,13 +2117,13 @@ > struct ext3_super_block * es; > struct block_device *bdev; > > - bdev = ext3_blkdev_get(j_dev); > + bdev = ext3_blkdev_get(j_dev, sb); > if (bdev == NULL) > return NULL; > > if (bd_claim(bdev, sb)) { > - printk(KERN_ERR > - "EXT3: failed to claim external journal device.\n"); > + ext3_msg(sb, KERN_ERR, > + "failed to claim external journal device"); > blkdev_put(bdev, FMODE_READ|FMODE_WRITE); > return NULL; > } > @@ -2121,8 +2131,8 @@ > blocksize = sb->s_blocksize; > hblock = bdev_hardsect_size(bdev); > if (blocksize < hblock) { > - printk(KERN_ERR > - "EXT3-fs: blocksize too small for journal device.\n"); > + ext3_msg(sb, KERN_ERR, > + "blocksize too small for journal device"); > goto out_bdev; > } > > @@ -2130,8 +2140,8 @@ > offset = EXT3_MIN_BLOCK_SIZE % blocksize; > set_blocksize(bdev, blocksize); > if (!(bh = __bread(bdev, sb_block, blocksize))) { > - printk(KERN_ERR "EXT3-fs: couldn't read superblock of " > - "external journal\n"); > + ext3_msg(sb, KERN_ERR, "couldn't read superblock of " > + "external journal"); > goto out_bdev; > } > > @@ -2139,14 +2149,14 @@ > if ((le16_to_cpu(es->s_magic) != EXT3_SUPER_MAGIC) || > !(le32_to_cpu(es->s_feature_incompat) & > EXT3_FEATURE_INCOMPAT_JOURNAL_DEV)) { > - printk(KERN_ERR "EXT3-fs: external journal has " > - "bad superblock\n"); > + ext3_msg(sb, KERN_ERR, "external journal has " > + "bad superblock"); > brelse(bh); > goto out_bdev; > } > > if (memcmp(EXT3_SB(sb)->s_es->s_journal_uuid, es->s_uuid, 16)) { > - printk(KERN_ERR "EXT3-fs: journal UUID does not match\n"); > + ext3_msg(sb, KERN_ERR, "journal UUID does not match"); > brelse(bh); > goto out_bdev; > } > @@ -2158,18 +2168,18 @@ > journal = journal_init_dev(bdev, sb->s_bdev, > start, len, blocksize); > if (!journal) { > - printk(KERN_ERR "EXT3-fs: failed to create device journal\n"); > + ext3_msg(sb, KERN_ERR, "failed to create device journal"); > goto out_bdev; > } > journal->j_private = sb; > ll_rw_block(READ, 1, &journal->j_sb_buffer); > wait_on_buffer(journal->j_sb_buffer); > if (!buffer_uptodate(journal->j_sb_buffer)) { > - printk(KERN_ERR "EXT3-fs: I/O error on journal device\n"); > + ext3_msg(sb, KERN_ERR, "I/O error on journal device"); > goto out_journal; > } > if (be32_to_cpu(journal->j_superblock->s_nr_users) != 1) { > - printk(KERN_ERR "EXT3-fs: External journal has more than one " > + ext3_msg(sb, KERN_ERR, "External journal has more than one " > "user (unsupported) - %d\n", > be32_to_cpu(journal->j_superblock->s_nr_users)); > goto out_journal; > @@ -2196,8 +2206,8 @@ > > if (journal_devnum && > journal_devnum != le32_to_cpu(es->s_journal_dev)) { > - printk(KERN_INFO "EXT3-fs: external journal device major/minor " > - "numbers have changed\n"); > + ext3_msg(sb, KERN_INFO, "external journal device major/minor " > + "numbers have changed"); > journal_dev = new_decode_dev(journal_devnum); > } else > journal_dev = new_decode_dev(le32_to_cpu(es->s_journal_dev)); > @@ -2212,21 +2222,21 @@ > > if (EXT3_HAS_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER)) { > if (sb->s_flags & MS_RDONLY) { > - printk(KERN_INFO "EXT3-fs: INFO: recovery " > - "required on readonly filesystem.\n"); > + ext3_msg(sb, KERN_INFO, "INFO: recovery " > + "required on readonly filesystem"); > if (really_read_only) { > - printk(KERN_ERR "EXT3-fs: write access " > - "unavailable, cannot proceed.\n"); > + ext3_msg(sb, KERN_ERR, "write access " > + "unavailable, cannot proceed"); > return -EROFS; > } > - printk (KERN_INFO "EXT3-fs: write access will " > - "be enabled during recovery.\n"); > + ext3_msg(sb, KERN_INFO, "write access will " > + "be enabled during recovery"); > } > } > > if (journal_inum && journal_dev) { > - printk(KERN_ERR "EXT3-fs: filesystem has both journal " > - "and inode journals!\n"); > + ext3_msg(sb, KERN_ERR, "Filesystem has both journal " > + "and inode journals!"); > return -EINVAL; > } > > @@ -2241,7 +2251,7 @@ > if (!really_read_only && test_opt(sb, UPDATE_JOURNAL)) { > err = journal_update_format(journal); > if (err) { > - printk(KERN_ERR "EXT3-fs: error updating journal.\n"); > + ext3_msg(sb, KERN_ERR, "error updating journal"); > journal_destroy(journal); > return err; > } > @@ -2253,7 +2263,7 @@ > err = journal_load(journal); > > if (err) { > - printk(KERN_ERR "EXT3-fs: error loading journal.\n"); > + ext3_msg(sb, KERN_ERR, "error loading journal"); > journal_destroy(journal); > return err; > } > @@ -2281,8 +2291,8 @@ > int err; > > if (sb->s_flags & MS_RDONLY) { > - printk(KERN_ERR "EXT3-fs: readonly filesystem when trying to " > - "create journal.\n"); > + ext3_msg(sb, KERN_ERR, "readonly filesystem when trying to " > + "create journal"); > return -EROFS; > } > > @@ -2290,12 +2300,12 @@ > if (!journal) > return -EINVAL; > > - printk(KERN_INFO "EXT3-fs: creating new journal on inode %u\n", > + ext3_msg(sb, KERN_INFO, "Creating new journal on inode %u", > journal_inum); > > err = journal_create(journal); > if (err) { > - printk(KERN_ERR "EXT3-fs: error creating journal.\n"); > + ext3_msg(sb, KERN_ERR, "error creating journal"); > journal_destroy(journal); > return -EIO; > } > @@ -2572,10 +2582,10 @@ > __le32 ret; > if ((ret = EXT3_HAS_RO_COMPAT_FEATURE(sb, > ~EXT3_FEATURE_RO_COMPAT_SUPP))) { > - printk(KERN_WARNING "EXT3-fs: %s: couldn't " > + ext3_msg(sb, KERN_WARNING, "Couldn't " > "remount RDWR because of unsupported " > - "optional features (%x).\n", > - sb->s_id, le32_to_cpu(ret)); > + "optional features (%x)", > + le32_to_cpu(ret)); > err = -EROFS; > goto restore_opts; > } > @@ -2586,11 +2596,10 @@ > * require a full umount/remount for now. > */ > if (es->s_last_orphan) { > - printk(KERN_WARNING "EXT3-fs: %s: couldn't " > + ext3_msg(sb, KERN_WARNING, "Couldn't " > "remount RDWR because of unprocessed " > "orphan inode list. Please " > - "umount/remount instead.\n", > - sb->s_id); > + "umount/remount instead"); > err = -EINVAL; > goto restore_opts; > } > @@ -2837,9 +2846,9 @@ > if (EXT3_SB(sb)->s_qf_names[type]) { > /* Quotafile not of fs root? */ > if (path.dentry->d_parent != sb->s_root) > - printk(KERN_WARNING > - "EXT3-fs: Quota file not on filesystem root. " > - "Journaled quota will not work.\n"); > + ext3_msg(sb, KERN_WARNING, > + "Quota file not on filesystem root. " > + "Journaled quota will not work"); > } > > /* > @@ -2921,8 +2930,8 @@ > handle_t *handle = journal_current_handle(); > > if (!handle) { > - printk(KERN_WARNING "EXT3-fs: Quota write (off=%Lu, len=%Lu)" > - " cancelled because transaction is not started.\n", > + ext3_msg(sb, KERN_WARNING, "Quota write (off=%Lu, len=%Lu)" > + " cancelled because transaction is not started", > (unsigned long long)off, (unsigned long long)len); > return -EIO; > } > Index: linux-2.6.30-rc3-ak/include/linux/ext3_fs.h > =================================================================== > --- linux-2.6.30-rc3-ak.orig/include/linux/ext3_fs.h 2009-04-08 12:15:17.000000000 +0200 > +++ linux-2.6.30-rc3-ak/include/linux/ext3_fs.h 2009-04-26 19:12:06.000000000 +0200 > @@ -918,6 +918,8 @@ > __attribute__ ((format (printf, 3, 4))); > extern void ext3_warning (struct super_block *, const char *, const char *, ...) > __attribute__ ((format (printf, 3, 4))); > +extern void ext3_msg (struct super_block *, const char *, const char *, ...) > + __attribute__ ((format (printf, 3, 4))); > extern void ext3_update_dynamic_rev (struct super_block *sb); > > #define ext3_std_error(sb, errno) \ > -- > 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 -- Jan Kara <jack@xxxxxxx> SuSE CR Labs -- 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