* [PATCH v1] Unify log messages in ext3 @ 2009-11-21 10:25 Alexey Fisher 2009-11-21 23:55 ` Eric Sandeen 0 siblings, 1 reply; 11+ messages in thread From: Alexey Fisher @ 2009-11-21 10:25 UTC (permalink / raw) To: Jan Kara, Eric Sandeen, Andreas Dilger, linux-ext4, Theodore Tso Cc: Alexey Fisher make messages produced by ext3 more unified. It should be easy to parse. dmesg before patch: [ 4893.684892] reservations ON [ 4893.684896] xip option not supported [ 4893.684964] EXT3-fs warning: maximal mount count reached, running e2fsck is recommended dmesg after patch: [ 873.300792] EXT3-fs (loop0): using internal journaln [ 873.300796] EXT3-fs (loop0): mounted filesystem with writeback data mode [ 924.163657] EXT3-fs (loop0): error: can't find ext3 filesystem on dev loop0. [ 723.755642] EXT3-fs (loop0): error: bad blocksize 8192 [ 357.874687] EXT3-fs (loop0): error: no journal found. mounting ext3 over ext2? [ 873.300764] EXT3-fs (loop0): warning: maximal mount count reached, running e2fsck is recommended [ 924.163657] EXT3-fs (loop0): error: can't find ext3 filesystem on dev loop0. Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net> --- fs/ext3/super.c | 422 +++++++++++++++++++++++++++++-------------------------- 1 files changed, 223 insertions(+), 199 deletions(-) diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 427496c..9931464 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c @@ -135,12 +135,24 @@ void ext3_journal_abort_handle(const char *caller, const char *err_fn, if (is_handle_aborted(handle)) return; - printk(KERN_ERR "%s: aborting transaction: %s in %s\n", - caller, errstr, err_fn); + printk(KERN_ERR "EXT3-fs: %s: aborting transaction: %s in %s\n", + caller, errstr, err_fn); journal_abort_handle(handle); } +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); +} + /* Deal with the reporting of failure conditions on a filesystem such as * inconsistencies detected or read IO failures. * @@ -174,12 +186,13 @@ static void ext3_handle_error(struct super_block *sb) journal_abort(journal, -EIO); } if (test_opt (sb, ERRORS_RO)) { - printk (KERN_CRIT "Remounting filesystem read-only\n"); + ext3_msg(sb, KERN_CRIT, + "error: remounting filesystem read-only"); sb->s_flags |= MS_RDONLY; } ext3_commit_super(sb, es, 1); if (test_opt(sb, ERRORS_PANIC)) - panic("EXT3-fs (device %s): panic forced after error\n", + panic("EXT3-fs (%s): panic forced after error\n", sb->s_id); } @@ -247,8 +260,7 @@ void __ext3_std_error (struct super_block * sb, const char * function, return; errstr = ext3_decode_error(sb, errno, nbuf); - printk (KERN_CRIT "EXT3-fs error (device %s) in %s: %s\n", - sb->s_id, function, errstr); + ext3_msg(sb, KERN_CRIT, "error in %s: %s", function, errstr); ext3_handle_error(sb); } @@ -268,21 +280,22 @@ void ext3_abort (struct super_block * sb, const char * function, { va_list args; - printk (KERN_CRIT "ext3_abort called.\n"); + ext3_msg(sb, KERN_CRIT, "ext3_abort called"); va_start(args, fmt); - printk(KERN_CRIT "EXT3-fs error (device %s): %s: ",sb->s_id, function); + printk(KERN_CRIT "EXT3-fs (%s): error: %s: ", sb->s_id, function); vprintk(fmt, args); printk("\n"); va_end(args); if (test_opt(sb, ERRORS_PANIC)) - panic("EXT3-fs panic from previous error\n"); + panic("EXT3-fs: panic from previous error\n"); if (sb->s_flags & MS_RDONLY) return; - printk(KERN_CRIT "Remounting filesystem read-only\n"); + ext3_msg(sb, KERN_CRIT, + "error: 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; @@ -296,7 +309,7 @@ void ext3_warning (struct super_block * sb, const char * function, va_list args; va_start(args, fmt); - printk(KERN_WARNING "EXT3-fs warning (device %s): %s: ", + printk(KERN_WARNING "EXT3-fs (%s): warning: %s: ", sb->s_id, function); vprintk(fmt, args); printk("\n"); @@ -310,10 +323,10 @@ void ext3_update_dynamic_rev(struct super_block *sb) if (le32_to_cpu(es->s_rev_level) > EXT3_GOOD_OLD_REV) return; - ext3_warning(sb, __func__, - "updating to rev %d because of new feature flag, " - "running e2fsck is recommended", - EXT3_DYNAMIC_REV); + ext3_msg(sb, KERN_WARNING, + "warning: updating to rev %d because of " + "new feature flag, running e2fsck is recommended", + EXT3_DYNAMIC_REV); es->s_first_ino = cpu_to_le32(EXT3_GOOD_OLD_FIRST_INO); es->s_inode_size = cpu_to_le16(EXT3_GOOD_OLD_INODE_SIZE); @@ -342,8 +355,9 @@ static struct block_device *ext3_blkdev_get(dev_t dev) return bdev; fail: - printk(KERN_ERR "EXT3: failed to open journal device %s: %ld\n", - __bdevname(dev, b), PTR_ERR(bdev)); + printk(KERN_ERR "EXT3-fs: failed to open journal device %s: %ld\n", + __bdevname(dev, b), PTR_ERR(bdev)); + return NULL; } @@ -378,13 +392,13 @@ static void dump_orphan_list(struct super_block *sb, struct ext3_sb_info *sbi) { struct list_head *l; - printk(KERN_ERR "sb orphan head is %d\n", + ext3_msg(sb, KERN_ERR, "error: sb orphan head is %d", le32_to_cpu(sbi->s_es->s_last_orphan)); - printk(KERN_ERR "sb_info orphan list:\n"); + ext3_msg(sb, KERN_ERR, "sb_info orphan list:"); list_for_each(l, &sbi->s_orphan) { struct inode *inode = orphan_list_entry(l); - printk(KERN_ERR " " + ext3_msg(sb, KERN_ERR, " " "inode %s:%lu at %p: mode %o, nlink %d, next %d\n", inode->i_sb->s_id, inode->i_ino, inode, inode->i_mode, inode->i_nlink, @@ -956,7 +970,8 @@ static int parse_options (char *options, struct super_block *sb, #else case Opt_user_xattr: case Opt_nouser_xattr: - printk("EXT3 (no)user_xattr options not supported\n"); + ext3_msg(sb, KERN_INFO, + "(no)user_xattr options not supported"); break; #endif #ifdef CONFIG_EXT3_FS_POSIX_ACL @@ -969,7 +984,8 @@ static int parse_options (char *options, struct super_block *sb, #else case Opt_acl: case Opt_noacl: - printk("EXT3 (no)acl options not supported\n"); + ext3_msg(sb, KERN_INFO, + "(no)acl options not supported"); break; #endif case Opt_reservation: @@ -985,16 +1001,16 @@ static int parse_options (char *options, struct super_block *sb, 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, "error: 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, "error: cannot specify " + "journal on remount"); return 0; } if (match_int(&args[0], &option)) @@ -1003,8 +1019,8 @@ static int parse_options (char *options, struct super_block *sb, break; case Opt_journal_dev: if (is_remount) { - printk(KERN_ERR "EXT3-fs: cannot specify " - "journal on remount\n"); + ext3_msg(sb, KERN_ERR, "error: cannot specify " + "journal on remount"); return 0; } if (match_int(&args[0], &option)) @@ -1036,12 +1052,11 @@ static int parse_options (char *options, struct super_block *sb, if ((sbi->s_mount_opt & EXT3_MOUNT_DATA_FLAGS) == data_opt) break; - printk(KERN_ERR - "EXT3-fs (device %s): Cannot change " + ext3_msg(sb, KERN_ERR, + "error: cannot change " "data mode on remount. The filesystem " "is mounted in data=%s mode and you " - "try to remount it in data=%s mode.\n", - sb->s_id, + "try to remount it in data=%s mode.", data_mode_string(sbi->s_mount_opt & EXT3_MOUNT_DATA_FLAGS), data_mode_string(data_opt)); @@ -1066,31 +1081,31 @@ static int parse_options (char *options, struct super_block *sb, 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, + "error: 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, + "error: 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, + "error: %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, + "error: quotafile must be on " + "filesystem root."); kfree(sbi->s_qf_names[qtype]); sbi->s_qf_names[qtype] = NULL; return 0; @@ -1105,9 +1120,9 @@ set_qf_name: 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, "error: cannot change " "journaled quota options when " - "quota turned on.\n"); + "quota turned on."); return 0; } /* @@ -1124,9 +1139,9 @@ clear_qf_name: 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, "error: cannot change " "journaled quota options when " - "quota turned on.\n"); + "quota turned on."); return 0; } sbi->s_jquota_fmt = qfmt; @@ -1142,8 +1157,8 @@ set_qf_format: 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, "error: cannot change " + "quota options when quota turned on."); return 0; } clear_opt(sbi->s_mount_opt, QUOTA); @@ -1154,8 +1169,8 @@ set_qf_format: case Opt_quota: case Opt_usrquota: case Opt_grpquota: - printk(KERN_ERR - "EXT3-fs: quota options not supported.\n"); + ext3_msg(sb, KERN_ERR, + "error: quota options not supported."); break; case Opt_usrjquota: case Opt_grpjquota: @@ -1163,9 +1178,9 @@ set_qf_format: 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, + "error: journaled quota options not " + "supported."); break; case Opt_noquota: break; @@ -1185,8 +1200,9 @@ set_qf_format: break; case Opt_resize: if (!is_remount) { - printk("EXT3-fs: resize option only available " - "for remount\n"); + ext3_msg(sb, KERN_ERR, + "error: resize option only available " + "for remount"); return 0; } if (match_int(&args[0], &option) != 0) @@ -1200,9 +1216,9 @@ set_qf_format: 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, + "error: unrecognized mount option \"%s\" " + "or missing valuen", p); return 0; } } @@ -1220,21 +1236,21 @@ set_qf_format: (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, "error: 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, "error: 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, "error: journaled quota format " "specified with no journaling " - "enabled.\n"); + "enabled."); return 0; } } @@ -1249,31 +1265,33 @@ static int ext3_setup_super(struct super_block *sb, struct ext3_super_block *es, 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, + "error: 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 @@ -1290,22 +1308,20 @@ static int ext3_setup_super(struct super_block *sb, struct ext3_super_block *es, ext3_commit_super(sb, es, 1); if (test_opt(sb, DEBUG)) - printk(KERN_INFO "[EXT3 FS bs=%lu, gc=%lu, " - "bpg=%lu, ipg=%lu, mo=%04lx]\n", + ext3_msg(sb, KERN_INFO, "[bs=%lu, gc=%lu, " + "bpg=%lu, ipg=%lu, mo=%04lx]", sb->s_blocksize, sbi->s_groups_count, EXT3_BLOCKS_PER_GROUP(sb), 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", + ext3_msg(sb, KERN_INFO, "using externa journal on %s", bdevname(EXT3_SB(sb)->s_journal->j_dev, b)); } else { - printk("internal journal\n"); + ext3_msg(sb, KERN_INFO, "using internal journaln"); } return res; } @@ -1399,8 +1415,8 @@ static void ext3_orphan_cleanup (struct super_block * sb, } if (bdev_read_only(sb->s_bdev)) { - printk(KERN_ERR "EXT3-fs: write access " - "unavailable, skipping orphan cleanup.\n"); + ext3_msg(sb, KERN_ERR, "error: write access " + "unavailable, skipping orphan cleanup."); return; } @@ -1414,8 +1430,7 @@ static void ext3_orphan_cleanup (struct super_block * sb, } 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 @@ -1426,9 +1441,9 @@ static void ext3_orphan_cleanup (struct super_block * sb, 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, + "error: cannot turn on journaled " + "quota: %d", ret); } } #endif @@ -1466,11 +1481,11 @@ static void ext3_orphan_cleanup (struct super_block * sb, #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, "%d truncate%s cleaned up", + PLURAL(nr_truncates)); #ifdef CONFIG_QUOTA /* Turn quotas off */ for (i = 0; i < MAXQUOTAS; i++) { @@ -1590,7 +1605,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, "error: unable to set blocksize"); goto out_fail; } @@ -1606,7 +1621,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) } if (!(bh = sb_bread(sb, logic_sb_block))) { - printk (KERN_ERR "EXT3-fs: unable to read superblock\n"); + ext3_msg(sb, KERN_ERR, "error: unable to read superblock"); goto out_fail; } /* @@ -1665,9 +1680,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) (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, @@ -1675,25 +1690,25 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) */ 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, + "error: 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, + "error: 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, + "error: couldn't mount because of unsupported " + "filesystem blocksize %d", blocksize); goto failed_mount; } @@ -1704,30 +1719,31 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) * 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, + "error: fsblocksize %d too small for " + "hardware sectorsize %d", blocksize, hblock); goto failed_mount; } brelse (bh); if (!sb_set_blocksize(sb, blocksize)) { - printk(KERN_ERR "EXT3-fs: bad blocksize %d.\n", - blocksize); + ext3_msg(sb, KERN_ERR, + "error: bad blocksize %d", blocksize); goto out_fail; } logic_sb_block = (sb_block * EXT3_MIN_BLOCK_SIZE) / blocksize; 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, + "error: 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, + "error: magic mismatch"); goto failed_mount; } } @@ -1743,8 +1759,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: unsupported inode size: %d", sbi->s_inode_size); goto failed_mount; } @@ -1752,8 +1768,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: fragsize %lu != blocksize %u (unsupported)", sbi->s_frag_size, blocksize); goto failed_mount; } @@ -1789,31 +1805,31 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) } 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, + "error: #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, + "error: #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, + "error: filesystem is too large to mount safely"); if (sizeof(sector_t) < 8) - printk(KERN_WARNING "EXT3-fs: CONFIG_LBDAF not " - "enabled\n"); + ext3_msg(sb, KERN_ERR, + "error: CONFIG_LBDAF not enabled"); goto failed_mount; } @@ -1827,7 +1843,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: not enough memory"); goto failed_mount; } @@ -1837,14 +1854,15 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: 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, + "error: group descriptors corrupted"); goto failed_mount2; } sbi->s_gdb_count = db_count; @@ -1862,7 +1880,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) ext3_count_dirs(sb)); } if (err) { - printk(KERN_ERR "EXT3-fs: insufficient memory\n"); + ext3_msg(sb, KERN_ERR, "error: insufficient memory"); goto failed_mount3; } @@ -1910,9 +1928,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: no journal found. " + "mounting ext3 over ext2?"); goto failed_mount3; } @@ -1934,8 +1952,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: journal does not support " + "requested data journaling mode"); goto failed_mount4; } default: @@ -1944,8 +1963,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "warning: ignoring nobh option - " + "its supported only with writeback mode"); clear_opt(sbi->s_mount_opt, NOBH); } } @@ -1956,18 +1976,18 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, "error: 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, "error: 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, "error: get root dentry failed"); iput(root); ret = -ENOMEM; goto failed_mount4; @@ -1986,9 +2006,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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"); @@ -1998,7 +2018,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) cantfind_ext3: if (!silent) - printk(KERN_ERR "VFS: Can't find ext3 filesystem on dev %s.\n", + ext3_msg(sb, KERN_INFO, + "error: can't find ext3 filesystem on dev %s.", sb->s_id); goto failed_mount; @@ -2066,27 +2087,27 @@ static journal_t *ext3_get_journal(struct super_block *sb, 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, "error: 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, "error: 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, "error: 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, "error: could not load journal inode"); iput(journal_inode); return NULL; } @@ -2113,8 +2134,8 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, return NULL; if (bd_claim(bdev, sb)) { - printk(KERN_ERR - "EXT3: failed to claim external journal device.\n"); + ext3_msg(sb, KERN_ERR, + "error: failed to claim external journal device"); blkdev_put(bdev, FMODE_READ|FMODE_WRITE); return NULL; } @@ -2122,8 +2143,8 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, blocksize = sb->s_blocksize; hblock = bdev_logical_block_size(bdev); if (blocksize < hblock) { - printk(KERN_ERR - "EXT3-fs: blocksize too small for journal device.\n"); + ext3_msg(sb, KERN_ERR, + "error: blocksize too small for journal device"); goto out_bdev; } @@ -2131,8 +2152,8 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, 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, "error: couldn't read superblock of " + "external journal"); goto out_bdev; } @@ -2140,14 +2161,14 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, 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, "error: 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, "error: journal UUID does not match"); brelse(bh); goto out_bdev; } @@ -2159,19 +2180,21 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, 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, + "error: 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 " - "user (unsupported) - %d\n", + ext3_msg(sb, KERN_ERR, + "error: external journal has more than one " + "user (unsupported) - %d", be32_to_cpu(journal->j_superblock->s_nr_users)); goto out_journal; } @@ -2197,8 +2220,8 @@ static int ext3_load_journal(struct super_block *sb, 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)); @@ -2213,21 +2236,21 @@ static int ext3_load_journal(struct super_block *sb, 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, + "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, "error: 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, "error: filesystem has both journal " + "and inode journals"); return -EINVAL; } @@ -2242,7 +2265,7 @@ static int ext3_load_journal(struct super_block *sb, 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; } @@ -2254,7 +2277,7 @@ static int ext3_load_journal(struct super_block *sb, 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; } @@ -2273,16 +2296,17 @@ static int ext3_load_journal(struct super_block *sb, return 0; } -static int ext3_create_journal(struct super_block * sb, - struct ext3_super_block * es, +static int ext3_create_journal(struct super_block *sb, + struct ext3_super_block *es, unsigned int journal_inum) { journal_t *journal; 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, + "error: readonly filesystem when trying to " + "create journal"); return -EROFS; } @@ -2290,12 +2314,12 @@ static int ext3_create_journal(struct super_block * sb, 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; } @@ -2376,8 +2400,8 @@ out: * has recorded an error from a previous lifetime, move that error to the * main filesystem now. */ -static void ext3_clear_journal_err(struct super_block * sb, - struct ext3_super_block * es) +static void ext3_clear_journal_err(struct super_block *sb, + struct ext3_super_block *es) { journal_t *journal; int j_errno; @@ -2568,10 +2592,10 @@ static int ext3_remount (struct super_block * sb, int * flags, char * data) __le32 ret; if ((ret = EXT3_HAS_RO_COMPAT_FEATURE(sb, ~EXT3_FEATURE_RO_COMPAT_SUPP))) { - printk(KERN_WARNING "EXT3-fs: %s: couldn't " - "remount RDWR because of unsupported " - "optional features (%x).\n", - sb->s_id, le32_to_cpu(ret)); + ext3_msg(sb, KERN_WARNING, + "warning: couldn't remount RDWR " + "because of unsupported optional " + "features (%x)", le32_to_cpu(ret)); err = -EROFS; goto restore_opts; } @@ -2582,11 +2606,10 @@ static int ext3_remount (struct super_block * sb, int * flags, char * data) * 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, "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 +2860,9 @@ static int ext3_quota_on(struct super_block *sb, int type, int format_id, 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, + "warning: Quota file not on filesystem root. " + "Journaled quota will not work."); } /* @@ -2921,8 +2944,9 @@ static ssize_t ext3_quota_write(struct super_block *sb, int type, 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, + "warning: quota write (off=%llu, len=%llu)" + " cancelled because transaction is not started.", (unsigned long long)off, (unsigned long long)len); return -EIO; } -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v1] Unify log messages in ext3 2009-11-21 10:25 [PATCH v1] Unify log messages in ext3 Alexey Fisher @ 2009-11-21 23:55 ` Eric Sandeen 2009-11-22 19:12 ` Alexey Fisher 2009-11-22 19:38 ` [PATCH v2] " Alexey Fisher 0 siblings, 2 replies; 11+ messages in thread From: Eric Sandeen @ 2009-11-21 23:55 UTC (permalink / raw) To: Alexey Fisher; +Cc: Jan Kara, Andreas Dilger, linux-ext4, Theodore Tso Alexey Fisher wrote: > make messages produced by ext3 more unified. It should be > easy to parse. Didn't Andi Kleen send this change already way back on 4/26/09? [PATCH] EXT3: Change all super.c messages to print the device Not sure what happened to it ... -Eric > dmesg before patch: > [ 4893.684892] reservations ON > [ 4893.684896] xip option not supported > [ 4893.684964] EXT3-fs warning: maximal mount count reached, running > e2fsck is recommended > > dmesg after patch: > [ 873.300792] EXT3-fs (loop0): using internal journaln > [ 873.300796] EXT3-fs (loop0): mounted filesystem with writeback data mode > [ 924.163657] EXT3-fs (loop0): error: can't find ext3 filesystem on dev loop0. > [ 723.755642] EXT3-fs (loop0): error: bad blocksize 8192 > [ 357.874687] EXT3-fs (loop0): error: no journal found. mounting ext3 over ext2? > [ 873.300764] EXT3-fs (loop0): warning: maximal mount count reached, running e2fsck is recommended > [ 924.163657] EXT3-fs (loop0): error: can't find ext3 filesystem on dev loop0. > > Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net> > --- > fs/ext3/super.c | 422 +++++++++++++++++++++++++++++-------------------------- > 1 files changed, 223 insertions(+), 199 deletions(-) > > diff --git a/fs/ext3/super.c b/fs/ext3/super.c > index 427496c..9931464 100644 > --- a/fs/ext3/super.c > +++ b/fs/ext3/super.c > @@ -135,12 +135,24 @@ void ext3_journal_abort_handle(const char *caller, const char *err_fn, > if (is_handle_aborted(handle)) > return; > > - printk(KERN_ERR "%s: aborting transaction: %s in %s\n", > - caller, errstr, err_fn); > + printk(KERN_ERR "EXT3-fs: %s: aborting transaction: %s in %s\n", > + caller, errstr, err_fn); > > journal_abort_handle(handle); > } > > +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); > +} > + > /* Deal with the reporting of failure conditions on a filesystem such as > * inconsistencies detected or read IO failures. > * > @@ -174,12 +186,13 @@ static void ext3_handle_error(struct super_block *sb) > journal_abort(journal, -EIO); > } > if (test_opt (sb, ERRORS_RO)) { > - printk (KERN_CRIT "Remounting filesystem read-only\n"); > + ext3_msg(sb, KERN_CRIT, > + "error: remounting filesystem read-only"); > sb->s_flags |= MS_RDONLY; > } > ext3_commit_super(sb, es, 1); > if (test_opt(sb, ERRORS_PANIC)) > - panic("EXT3-fs (device %s): panic forced after error\n", > + panic("EXT3-fs (%s): panic forced after error\n", > sb->s_id); > } > > @@ -247,8 +260,7 @@ void __ext3_std_error (struct super_block * sb, const char * function, > return; > > errstr = ext3_decode_error(sb, errno, nbuf); > - printk (KERN_CRIT "EXT3-fs error (device %s) in %s: %s\n", > - sb->s_id, function, errstr); > + ext3_msg(sb, KERN_CRIT, "error in %s: %s", function, errstr); > > ext3_handle_error(sb); > } > @@ -268,21 +280,22 @@ void ext3_abort (struct super_block * sb, const char * function, > { > va_list args; > > - printk (KERN_CRIT "ext3_abort called.\n"); > + ext3_msg(sb, KERN_CRIT, "ext3_abort called"); > > va_start(args, fmt); > - printk(KERN_CRIT "EXT3-fs error (device %s): %s: ",sb->s_id, function); > + printk(KERN_CRIT "EXT3-fs (%s): error: %s: ", sb->s_id, function); > vprintk(fmt, args); > printk("\n"); > va_end(args); > > if (test_opt(sb, ERRORS_PANIC)) > - panic("EXT3-fs panic from previous error\n"); > + panic("EXT3-fs: panic from previous error\n"); > > if (sb->s_flags & MS_RDONLY) > return; > > - printk(KERN_CRIT "Remounting filesystem read-only\n"); > + ext3_msg(sb, KERN_CRIT, > + "error: 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; > @@ -296,7 +309,7 @@ void ext3_warning (struct super_block * sb, const char * function, > va_list args; > > va_start(args, fmt); > - printk(KERN_WARNING "EXT3-fs warning (device %s): %s: ", > + printk(KERN_WARNING "EXT3-fs (%s): warning: %s: ", > sb->s_id, function); > vprintk(fmt, args); > printk("\n"); > @@ -310,10 +323,10 @@ void ext3_update_dynamic_rev(struct super_block *sb) > if (le32_to_cpu(es->s_rev_level) > EXT3_GOOD_OLD_REV) > return; > > - ext3_warning(sb, __func__, > - "updating to rev %d because of new feature flag, " > - "running e2fsck is recommended", > - EXT3_DYNAMIC_REV); > + ext3_msg(sb, KERN_WARNING, > + "warning: updating to rev %d because of " > + "new feature flag, running e2fsck is recommended", > + EXT3_DYNAMIC_REV); > > es->s_first_ino = cpu_to_le32(EXT3_GOOD_OLD_FIRST_INO); > es->s_inode_size = cpu_to_le16(EXT3_GOOD_OLD_INODE_SIZE); > @@ -342,8 +355,9 @@ static struct block_device *ext3_blkdev_get(dev_t dev) > return bdev; > > fail: > - printk(KERN_ERR "EXT3: failed to open journal device %s: %ld\n", > - __bdevname(dev, b), PTR_ERR(bdev)); > + printk(KERN_ERR "EXT3-fs: failed to open journal device %s: %ld\n", > + __bdevname(dev, b), PTR_ERR(bdev)); > + > return NULL; > } > > @@ -378,13 +392,13 @@ static void dump_orphan_list(struct super_block *sb, struct ext3_sb_info *sbi) > { > struct list_head *l; > > - printk(KERN_ERR "sb orphan head is %d\n", > + ext3_msg(sb, KERN_ERR, "error: sb orphan head is %d", > le32_to_cpu(sbi->s_es->s_last_orphan)); > > - printk(KERN_ERR "sb_info orphan list:\n"); > + ext3_msg(sb, KERN_ERR, "sb_info orphan list:"); > list_for_each(l, &sbi->s_orphan) { > struct inode *inode = orphan_list_entry(l); > - printk(KERN_ERR " " > + ext3_msg(sb, KERN_ERR, " " > "inode %s:%lu at %p: mode %o, nlink %d, next %d\n", > inode->i_sb->s_id, inode->i_ino, inode, > inode->i_mode, inode->i_nlink, > @@ -956,7 +970,8 @@ static int parse_options (char *options, struct super_block *sb, > #else > case Opt_user_xattr: > case Opt_nouser_xattr: > - printk("EXT3 (no)user_xattr options not supported\n"); > + ext3_msg(sb, KERN_INFO, > + "(no)user_xattr options not supported"); > break; > #endif > #ifdef CONFIG_EXT3_FS_POSIX_ACL > @@ -969,7 +984,8 @@ static int parse_options (char *options, struct super_block *sb, > #else > case Opt_acl: > case Opt_noacl: > - printk("EXT3 (no)acl options not supported\n"); > + ext3_msg(sb, KERN_INFO, > + "(no)acl options not supported"); > break; > #endif > case Opt_reservation: > @@ -985,16 +1001,16 @@ static int parse_options (char *options, struct super_block *sb, > 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, "error: 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, "error: cannot specify " > + "journal on remount"); > return 0; > } > if (match_int(&args[0], &option)) > @@ -1003,8 +1019,8 @@ static int parse_options (char *options, struct super_block *sb, > break; > case Opt_journal_dev: > if (is_remount) { > - printk(KERN_ERR "EXT3-fs: cannot specify " > - "journal on remount\n"); > + ext3_msg(sb, KERN_ERR, "error: cannot specify " > + "journal on remount"); > return 0; > } > if (match_int(&args[0], &option)) > @@ -1036,12 +1052,11 @@ static int parse_options (char *options, struct super_block *sb, > if ((sbi->s_mount_opt & EXT3_MOUNT_DATA_FLAGS) > == data_opt) > break; > - printk(KERN_ERR > - "EXT3-fs (device %s): Cannot change " > + ext3_msg(sb, KERN_ERR, > + "error: cannot change " > "data mode on remount. The filesystem " > "is mounted in data=%s mode and you " > - "try to remount it in data=%s mode.\n", > - sb->s_id, > + "try to remount it in data=%s mode.", > data_mode_string(sbi->s_mount_opt & > EXT3_MOUNT_DATA_FLAGS), > data_mode_string(data_opt)); > @@ -1066,31 +1081,31 @@ static int parse_options (char *options, struct super_block *sb, > 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, > + "error: 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, > + "error: 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, > + "error: %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, > + "error: quotafile must be on " > + "filesystem root."); > kfree(sbi->s_qf_names[qtype]); > sbi->s_qf_names[qtype] = NULL; > return 0; > @@ -1105,9 +1120,9 @@ set_qf_name: > 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, "error: cannot change " > "journaled quota options when " > - "quota turned on.\n"); > + "quota turned on."); > return 0; > } > /* > @@ -1124,9 +1139,9 @@ clear_qf_name: > 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, "error: cannot change " > "journaled quota options when " > - "quota turned on.\n"); > + "quota turned on."); > return 0; > } > sbi->s_jquota_fmt = qfmt; > @@ -1142,8 +1157,8 @@ set_qf_format: > 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, "error: cannot change " > + "quota options when quota turned on."); > return 0; > } > clear_opt(sbi->s_mount_opt, QUOTA); > @@ -1154,8 +1169,8 @@ set_qf_format: > case Opt_quota: > case Opt_usrquota: > case Opt_grpquota: > - printk(KERN_ERR > - "EXT3-fs: quota options not supported.\n"); > + ext3_msg(sb, KERN_ERR, > + "error: quota options not supported."); > break; > case Opt_usrjquota: > case Opt_grpjquota: > @@ -1163,9 +1178,9 @@ set_qf_format: > 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, > + "error: journaled quota options not " > + "supported."); > break; > case Opt_noquota: > break; > @@ -1185,8 +1200,9 @@ set_qf_format: > break; > case Opt_resize: > if (!is_remount) { > - printk("EXT3-fs: resize option only available " > - "for remount\n"); > + ext3_msg(sb, KERN_ERR, > + "error: resize option only available " > + "for remount"); > return 0; > } > if (match_int(&args[0], &option) != 0) > @@ -1200,9 +1216,9 @@ set_qf_format: > 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, > + "error: unrecognized mount option \"%s\" " > + "or missing valuen", p); > return 0; > } > } > @@ -1220,21 +1236,21 @@ set_qf_format: > (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, "error: 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, "error: 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, "error: journaled quota format " > "specified with no journaling " > - "enabled.\n"); > + "enabled."); > return 0; > } > } > @@ -1249,31 +1265,33 @@ static int ext3_setup_super(struct super_block *sb, struct ext3_super_block *es, > 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, > + "error: 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 > @@ -1290,22 +1308,20 @@ static int ext3_setup_super(struct super_block *sb, struct ext3_super_block *es, > > ext3_commit_super(sb, es, 1); > if (test_opt(sb, DEBUG)) > - printk(KERN_INFO "[EXT3 FS bs=%lu, gc=%lu, " > - "bpg=%lu, ipg=%lu, mo=%04lx]\n", > + ext3_msg(sb, KERN_INFO, "[bs=%lu, gc=%lu, " > + "bpg=%lu, ipg=%lu, mo=%04lx]", > sb->s_blocksize, > sbi->s_groups_count, > EXT3_BLOCKS_PER_GROUP(sb), > 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", > + ext3_msg(sb, KERN_INFO, "using externa journal on %s", > bdevname(EXT3_SB(sb)->s_journal->j_dev, b)); > } else { > - printk("internal journal\n"); > + ext3_msg(sb, KERN_INFO, "using internal journaln"); > } > return res; > } > @@ -1399,8 +1415,8 @@ static void ext3_orphan_cleanup (struct super_block * sb, > } > > if (bdev_read_only(sb->s_bdev)) { > - printk(KERN_ERR "EXT3-fs: write access " > - "unavailable, skipping orphan cleanup.\n"); > + ext3_msg(sb, KERN_ERR, "error: write access " > + "unavailable, skipping orphan cleanup."); > return; > } > > @@ -1414,8 +1430,7 @@ static void ext3_orphan_cleanup (struct super_block * sb, > } > > 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 > @@ -1426,9 +1441,9 @@ static void ext3_orphan_cleanup (struct super_block * sb, > 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, > + "error: cannot turn on journaled " > + "quota: %d", ret); > } > } > #endif > @@ -1466,11 +1481,11 @@ static void ext3_orphan_cleanup (struct super_block * sb, > #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, "%d truncate%s cleaned up", > + PLURAL(nr_truncates)); > #ifdef CONFIG_QUOTA > /* Turn quotas off */ > for (i = 0; i < MAXQUOTAS; i++) { > @@ -1590,7 +1605,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > > 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, "error: unable to set blocksize"); > goto out_fail; > } > > @@ -1606,7 +1621,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > } > > if (!(bh = sb_bread(sb, logic_sb_block))) { > - printk (KERN_ERR "EXT3-fs: unable to read superblock\n"); > + ext3_msg(sb, KERN_ERR, "error: unable to read superblock"); > goto out_fail; > } > /* > @@ -1665,9 +1680,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > (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, > @@ -1675,25 +1690,25 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > */ > 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, > + "error: 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, > + "error: 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, > + "error: couldn't mount because of unsupported " > + "filesystem blocksize %d", blocksize); > goto failed_mount; > } > > @@ -1704,30 +1719,31 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > * 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, > + "error: fsblocksize %d too small for " > + "hardware sectorsize %d", blocksize, hblock); > goto failed_mount; > } > > brelse (bh); > if (!sb_set_blocksize(sb, blocksize)) { > - printk(KERN_ERR "EXT3-fs: bad blocksize %d.\n", > - blocksize); > + ext3_msg(sb, KERN_ERR, > + "error: bad blocksize %d", blocksize); > goto out_fail; > } > logic_sb_block = (sb_block * EXT3_MIN_BLOCK_SIZE) / blocksize; > 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, > + "error: 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, > + "error: magic mismatch"); > goto failed_mount; > } > } > @@ -1743,8 +1759,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > 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, > + "error: unsupported inode size: %d", > sbi->s_inode_size); > goto failed_mount; > } > @@ -1752,8 +1768,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > 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, > + "error: fragsize %lu != blocksize %u (unsupported)", > sbi->s_frag_size, blocksize); > goto failed_mount; > } > @@ -1789,31 +1805,31 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > } > > 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, > + "error: #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, > + "error: #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, > + "error: filesystem is too large to mount safely"); > if (sizeof(sector_t) < 8) > - printk(KERN_WARNING "EXT3-fs: CONFIG_LBDAF not " > - "enabled\n"); > + ext3_msg(sb, KERN_ERR, > + "error: CONFIG_LBDAF not enabled"); > goto failed_mount; > } > > @@ -1827,7 +1843,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > 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, > + "error: not enough memory"); > goto failed_mount; > } > > @@ -1837,14 +1854,15 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > 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, > + "error: 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, > + "error: group descriptors corrupted"); > goto failed_mount2; > } > sbi->s_gdb_count = db_count; > @@ -1862,7 +1880,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > ext3_count_dirs(sb)); > } > if (err) { > - printk(KERN_ERR "EXT3-fs: insufficient memory\n"); > + ext3_msg(sb, KERN_ERR, "error: insufficient memory"); > goto failed_mount3; > } > > @@ -1910,9 +1928,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > 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, > + "error: no journal found. " > + "mounting ext3 over ext2?"); > goto failed_mount3; > } > > @@ -1934,8 +1952,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > 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, > + "error: journal does not support " > + "requested data journaling mode"); > goto failed_mount4; > } > default: > @@ -1944,8 +1963,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > > 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, > + "warning: ignoring nobh option - " > + "its supported only with writeback mode"); > clear_opt(sbi->s_mount_opt, NOBH); > } > } > @@ -1956,18 +1976,18 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > > 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, "error: 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, "error: 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, "error: get root dentry failed"); > iput(root); > ret = -ENOMEM; > goto failed_mount4; > @@ -1986,9 +2006,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > 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"); > @@ -1998,7 +2018,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > > cantfind_ext3: > if (!silent) > - printk(KERN_ERR "VFS: Can't find ext3 filesystem on dev %s.\n", > + ext3_msg(sb, KERN_INFO, > + "error: can't find ext3 filesystem on dev %s.", > sb->s_id); > goto failed_mount; > > @@ -2066,27 +2087,27 @@ static journal_t *ext3_get_journal(struct super_block *sb, > > 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, "error: 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, "error: 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, "error: 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, "error: could not load journal inode"); > iput(journal_inode); > return NULL; > } > @@ -2113,8 +2134,8 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, > return NULL; > > if (bd_claim(bdev, sb)) { > - printk(KERN_ERR > - "EXT3: failed to claim external journal device.\n"); > + ext3_msg(sb, KERN_ERR, > + "error: failed to claim external journal device"); > blkdev_put(bdev, FMODE_READ|FMODE_WRITE); > return NULL; > } > @@ -2122,8 +2143,8 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, > blocksize = sb->s_blocksize; > hblock = bdev_logical_block_size(bdev); > if (blocksize < hblock) { > - printk(KERN_ERR > - "EXT3-fs: blocksize too small for journal device.\n"); > + ext3_msg(sb, KERN_ERR, > + "error: blocksize too small for journal device"); > goto out_bdev; > } > > @@ -2131,8 +2152,8 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, > 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, "error: couldn't read superblock of " > + "external journal"); > goto out_bdev; > } > > @@ -2140,14 +2161,14 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, > 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, "error: 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, "error: journal UUID does not match"); > brelse(bh); > goto out_bdev; > } > @@ -2159,19 +2180,21 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, > 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, > + "error: 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 " > - "user (unsupported) - %d\n", > + ext3_msg(sb, KERN_ERR, > + "error: external journal has more than one " > + "user (unsupported) - %d", > be32_to_cpu(journal->j_superblock->s_nr_users)); > goto out_journal; > } > @@ -2197,8 +2220,8 @@ static int ext3_load_journal(struct super_block *sb, > > 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)); > @@ -2213,21 +2236,21 @@ static int ext3_load_journal(struct super_block *sb, > > 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, > + "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, "error: 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, "error: filesystem has both journal " > + "and inode journals"); > return -EINVAL; > } > > @@ -2242,7 +2265,7 @@ static int ext3_load_journal(struct super_block *sb, > 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; > } > @@ -2254,7 +2277,7 @@ static int ext3_load_journal(struct super_block *sb, > 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; > } > @@ -2273,16 +2296,17 @@ static int ext3_load_journal(struct super_block *sb, > return 0; > } > > -static int ext3_create_journal(struct super_block * sb, > - struct ext3_super_block * es, > +static int ext3_create_journal(struct super_block *sb, > + struct ext3_super_block *es, > unsigned int journal_inum) > { > journal_t *journal; > 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, > + "error: readonly filesystem when trying to " > + "create journal"); > return -EROFS; > } > > @@ -2290,12 +2314,12 @@ static int ext3_create_journal(struct super_block * sb, > 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; > } > @@ -2376,8 +2400,8 @@ out: > * has recorded an error from a previous lifetime, move that error to the > * main filesystem now. > */ > -static void ext3_clear_journal_err(struct super_block * sb, > - struct ext3_super_block * es) > +static void ext3_clear_journal_err(struct super_block *sb, > + struct ext3_super_block *es) > { > journal_t *journal; > int j_errno; > @@ -2568,10 +2592,10 @@ static int ext3_remount (struct super_block * sb, int * flags, char * data) > __le32 ret; > if ((ret = EXT3_HAS_RO_COMPAT_FEATURE(sb, > ~EXT3_FEATURE_RO_COMPAT_SUPP))) { > - printk(KERN_WARNING "EXT3-fs: %s: couldn't " > - "remount RDWR because of unsupported " > - "optional features (%x).\n", > - sb->s_id, le32_to_cpu(ret)); > + ext3_msg(sb, KERN_WARNING, > + "warning: couldn't remount RDWR " > + "because of unsupported optional " > + "features (%x)", le32_to_cpu(ret)); > err = -EROFS; > goto restore_opts; > } > @@ -2582,11 +2606,10 @@ static int ext3_remount (struct super_block * sb, int * flags, char * data) > * 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, "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 +2860,9 @@ static int ext3_quota_on(struct super_block *sb, int type, int format_id, > 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, > + "warning: Quota file not on filesystem root. " > + "Journaled quota will not work."); > } > > /* > @@ -2921,8 +2944,9 @@ static ssize_t ext3_quota_write(struct super_block *sb, int type, > 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, > + "warning: quota write (off=%llu, len=%llu)" > + " cancelled because transaction is not started.", > (unsigned long long)off, (unsigned long long)len); > return -EIO; > } ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v1] Unify log messages in ext3 2009-11-21 23:55 ` Eric Sandeen @ 2009-11-22 19:12 ` Alexey Fisher 2009-11-22 19:38 ` [PATCH v2] " Alexey Fisher 1 sibling, 0 replies; 11+ messages in thread From: Alexey Fisher @ 2009-11-22 19:12 UTC (permalink / raw) To: Eric Sandeen; +Cc: Jan Kara, Andreas Dilger, linux-ext4, Theodore Tso Am Samstag, den 21.11.2009, 17:55 -0600 schrieb Eric Sandeen: > Alexey Fisher wrote: > > make messages produced by ext3 more unified. It should be > > easy to parse. > > Didn't Andi Kleen send this change already way back on 4/26/09? > > [PATCH] EXT3: Change all super.c messages to print the device > > Not sure what happened to it ... > > -Eric Hmm... seems like Andis patch is against 2.6.30. I'll compare this two patches. Alexey ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2] Unify log messages in ext3 2009-11-21 23:55 ` Eric Sandeen 2009-11-22 19:12 ` Alexey Fisher @ 2009-11-22 19:38 ` Alexey Fisher 2009-11-22 19:42 ` Alexey Fisher 2009-11-23 10:36 ` Jan Kara 1 sibling, 2 replies; 11+ messages in thread From: Alexey Fisher @ 2009-11-22 19:38 UTC (permalink / raw) To: Jan Kara, Eric Sandeen, Andreas Dilger, linux-ext4, Theodore Tso Cc: Alexey Fisher make messages produced by ext3 more unified. It should be easy to parse. dmesg before patch: [ 4893.684892] reservations ON [ 4893.684896] xip option not supported [ 4893.684964] EXT3-fs warning: maximal mount count reached, running e2fsck is recommended dmesg after patch: [ 873.300792] EXT3-fs (loop0): using internal journaln [ 873.300796] EXT3-fs (loop0): mounted filesystem with writeback data mode [ 924.163657] EXT3-fs (loop0): error: can't find ext3 filesystem on dev loop0. [ 723.755642] EXT3-fs (loop0): error: bad blocksize 8192 [ 357.874687] EXT3-fs (loop0): error: no journal found. mounting ext3 over ext2? [ 873.300764] EXT3-fs (loop0): warning: maximal mount count reached, running e2fsck is recommended [ 924.163657] EXT3-fs (loop0): error: can't find ext3 filesystem on dev loop0. Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net> modified: fs/ext3/super.c modified: include/linux/ext3_fs.h --- fs/ext3/super.c | 432 +++++++++++++++++++++++++---------------------- include/linux/ext3_fs.h | 2 + 2 files changed, 229 insertions(+), 205 deletions(-) diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 427496c..b1b6da8 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c @@ -135,12 +135,24 @@ void ext3_journal_abort_handle(const char *caller, const char *err_fn, if (is_handle_aborted(handle)) return; - printk(KERN_ERR "%s: aborting transaction: %s in %s\n", - caller, errstr, err_fn); + printk(KERN_ERR "EXT3-fs: %s: aborting transaction: %s in %s\n", + caller, errstr, err_fn); journal_abort_handle(handle); } +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); +} + /* Deal with the reporting of failure conditions on a filesystem such as * inconsistencies detected or read IO failures. * @@ -174,12 +186,13 @@ static void ext3_handle_error(struct super_block *sb) journal_abort(journal, -EIO); } if (test_opt (sb, ERRORS_RO)) { - printk (KERN_CRIT "Remounting filesystem read-only\n"); + ext3_msg(sb, KERN_CRIT, + "error: remounting filesystem read-only"); sb->s_flags |= MS_RDONLY; } ext3_commit_super(sb, es, 1); if (test_opt(sb, ERRORS_PANIC)) - panic("EXT3-fs (device %s): panic forced after error\n", + panic("EXT3-fs (%s): panic forced after error\n", sb->s_id); } @@ -247,8 +260,7 @@ void __ext3_std_error (struct super_block * sb, const char * function, return; errstr = ext3_decode_error(sb, errno, nbuf); - printk (KERN_CRIT "EXT3-fs error (device %s) in %s: %s\n", - sb->s_id, function, errstr); + ext3_msg(sb, KERN_CRIT, "error in %s: %s", function, errstr); ext3_handle_error(sb); } @@ -268,21 +280,20 @@ void ext3_abort (struct super_block * sb, const char * function, { 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); + printk(KERN_CRIT "EXT3-fs (%s): error: %s: ", sb->s_id, function); vprintk(fmt, args); printk("\n"); va_end(args); if (test_opt(sb, ERRORS_PANIC)) - panic("EXT3-fs panic from previous error\n"); + panic("EXT3-fs: panic from previous error\n"); if (sb->s_flags & MS_RDONLY) return; - printk(KERN_CRIT "Remounting filesystem read-only\n"); + ext3_msg(sb, KERN_CRIT, + "error: 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; @@ -296,7 +307,7 @@ void ext3_warning (struct super_block * sb, const char * function, va_list args; va_start(args, fmt); - printk(KERN_WARNING "EXT3-fs warning (device %s): %s: ", + printk(KERN_WARNING "EXT3-fs (%s): warning: %s: ", sb->s_id, function); vprintk(fmt, args); printk("\n"); @@ -310,10 +321,10 @@ void ext3_update_dynamic_rev(struct super_block *sb) if (le32_to_cpu(es->s_rev_level) > EXT3_GOOD_OLD_REV) return; - ext3_warning(sb, __func__, - "updating to rev %d because of new feature flag, " - "running e2fsck is recommended", - EXT3_DYNAMIC_REV); + ext3_msg(sb, KERN_WARNING, + "warning: updating to rev %d because of " + "new feature flag, running e2fsck is recommended", + EXT3_DYNAMIC_REV); es->s_first_ino = cpu_to_le32(EXT3_GOOD_OLD_FIRST_INO); es->s_inode_size = cpu_to_le16(EXT3_GOOD_OLD_INODE_SIZE); @@ -331,7 +342,7 @@ void ext3_update_dynamic_rev(struct super_block *sb) /* * 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]; @@ -342,8 +353,9 @@ static struct block_device *ext3_blkdev_get(dev_t dev) return bdev; fail: - printk(KERN_ERR "EXT3: failed to open journal device %s: %ld\n", - __bdevname(dev, b), PTR_ERR(bdev)); + ext3_msg(sb, "error: failed to open journal device %s: %ld", + __bdevname(dev, b), PTR_ERR(bdev)); + return NULL; } @@ -378,13 +390,13 @@ static void dump_orphan_list(struct super_block *sb, struct ext3_sb_info *sbi) { struct list_head *l; - printk(KERN_ERR "sb orphan head is %d\n", + ext3_msg(sb, KERN_ERR, "error: sb orphan head is %d", le32_to_cpu(sbi->s_es->s_last_orphan)); - printk(KERN_ERR "sb_info orphan list:\n"); + ext3_msg(sb, KERN_ERR, "sb_info orphan list:"); list_for_each(l, &sbi->s_orphan) { struct inode *inode = orphan_list_entry(l); - printk(KERN_ERR " " + ext3_msg(sb, KERN_ERR, " " "inode %s:%lu at %p: mode %o, nlink %d, next %d\n", inode->i_sb->s_id, inode->i_ino, inode, inode->i_mode, inode->i_nlink, @@ -845,7 +857,7 @@ static const match_table_t tokens = { {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; @@ -856,7 +868,7 @@ static ext3_fsblk_t get_sb_block(void **data) /*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, "error: invalid sb specification: %s", (char *) *data); return 1; } @@ -956,7 +968,8 @@ static int parse_options (char *options, struct super_block *sb, #else case Opt_user_xattr: case Opt_nouser_xattr: - printk("EXT3 (no)user_xattr options not supported\n"); + ext3_msg(sb, KERN_INFO, + "(no)user_xattr options not supported"); break; #endif #ifdef CONFIG_EXT3_FS_POSIX_ACL @@ -969,7 +982,8 @@ static int parse_options (char *options, struct super_block *sb, #else case Opt_acl: case Opt_noacl: - printk("EXT3 (no)acl options not supported\n"); + ext3_msg(sb, KERN_INFO, + "(no)acl options not supported"); break; #endif case Opt_reservation: @@ -985,16 +999,16 @@ static int parse_options (char *options, struct super_block *sb, 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, "error: 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, "error: cannot specify " + "journal on remount"); return 0; } if (match_int(&args[0], &option)) @@ -1003,8 +1017,8 @@ static int parse_options (char *options, struct super_block *sb, break; case Opt_journal_dev: if (is_remount) { - printk(KERN_ERR "EXT3-fs: cannot specify " - "journal on remount\n"); + ext3_msg(sb, KERN_ERR, "error: cannot specify " + "journal on remount"); return 0; } if (match_int(&args[0], &option)) @@ -1036,12 +1050,11 @@ static int parse_options (char *options, struct super_block *sb, if ((sbi->s_mount_opt & EXT3_MOUNT_DATA_FLAGS) == data_opt) break; - printk(KERN_ERR - "EXT3-fs (device %s): Cannot change " + ext3_msg(sb, KERN_ERR, + "error: cannot change " "data mode on remount. The filesystem " "is mounted in data=%s mode and you " - "try to remount it in data=%s mode.\n", - sb->s_id, + "try to remount it in data=%s mode.", data_mode_string(sbi->s_mount_opt & EXT3_MOUNT_DATA_FLAGS), data_mode_string(data_opt)); @@ -1066,31 +1079,31 @@ static int parse_options (char *options, struct super_block *sb, 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, + "error: 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, + "error: 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, + "error: %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, + "error: quotafile must be on " + "filesystem root."); kfree(sbi->s_qf_names[qtype]); sbi->s_qf_names[qtype] = NULL; return 0; @@ -1105,9 +1118,9 @@ set_qf_name: 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, "error: cannot change " "journaled quota options when " - "quota turned on.\n"); + "quota turned on."); return 0; } /* @@ -1124,9 +1137,9 @@ clear_qf_name: 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, "error: cannot change " "journaled quota options when " - "quota turned on.\n"); + "quota turned on."); return 0; } sbi->s_jquota_fmt = qfmt; @@ -1142,8 +1155,8 @@ set_qf_format: 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, "error: cannot change " + "quota options when quota turned on."); return 0; } clear_opt(sbi->s_mount_opt, QUOTA); @@ -1154,8 +1167,8 @@ set_qf_format: case Opt_quota: case Opt_usrquota: case Opt_grpquota: - printk(KERN_ERR - "EXT3-fs: quota options not supported.\n"); + ext3_msg(sb, KERN_ERR, + "error: quota options not supported."); break; case Opt_usrjquota: case Opt_grpjquota: @@ -1163,9 +1176,9 @@ set_qf_format: 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, + "error: journaled quota options not " + "supported."); break; case Opt_noquota: break; @@ -1185,8 +1198,9 @@ set_qf_format: break; case Opt_resize: if (!is_remount) { - printk("EXT3-fs: resize option only available " - "for remount\n"); + ext3_msg(sb, KERN_ERR, + "error: resize option only available " + "for remount"); return 0; } if (match_int(&args[0], &option) != 0) @@ -1200,9 +1214,9 @@ set_qf_format: 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, + "error: unrecognized mount option \"%s\" " + "or missing valuen", p); return 0; } } @@ -1220,21 +1234,21 @@ set_qf_format: (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, "error: 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, "error: 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, "error: journaled quota format " "specified with no journaling " - "enabled.\n"); + "enabled."); return 0; } } @@ -1249,31 +1263,33 @@ static int ext3_setup_super(struct super_block *sb, struct ext3_super_block *es, 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, + "error: 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 @@ -1290,22 +1306,20 @@ static int ext3_setup_super(struct super_block *sb, struct ext3_super_block *es, ext3_commit_super(sb, es, 1); if (test_opt(sb, DEBUG)) - printk(KERN_INFO "[EXT3 FS bs=%lu, gc=%lu, " - "bpg=%lu, ipg=%lu, mo=%04lx]\n", + ext3_msg(sb, KERN_INFO, "[bs=%lu, gc=%lu, " + "bpg=%lu, ipg=%lu, mo=%04lx]", sb->s_blocksize, sbi->s_groups_count, EXT3_BLOCKS_PER_GROUP(sb), 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", + ext3_msg(sb, KERN_INFO, "using externa journal on %s", bdevname(EXT3_SB(sb)->s_journal->j_dev, b)); } else { - printk("internal journal\n"); + ext3_msg(sb, KERN_INFO, "using internal journaln"); } return res; } @@ -1399,8 +1413,8 @@ static void ext3_orphan_cleanup (struct super_block * sb, } if (bdev_read_only(sb->s_bdev)) { - printk(KERN_ERR "EXT3-fs: write access " - "unavailable, skipping orphan cleanup.\n"); + ext3_msg(sb, KERN_ERR, "error: write access " + "unavailable, skipping orphan cleanup."); return; } @@ -1414,8 +1428,7 @@ static void ext3_orphan_cleanup (struct super_block * sb, } 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 @@ -1426,9 +1439,9 @@ static void ext3_orphan_cleanup (struct super_block * sb, 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, + "error: cannot turn on journaled " + "quota: %d", ret); } } #endif @@ -1466,11 +1479,11 @@ static void ext3_orphan_cleanup (struct super_block * sb, #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, "%d truncate%s cleaned up", + PLURAL(nr_truncates)); #ifdef CONFIG_QUOTA /* Turn quotas off */ for (i = 0; i < MAXQUOTAS; i++) { @@ -1554,7 +1567,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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; @@ -1590,7 +1603,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, "error: unable to set blocksize"); goto out_fail; } @@ -1606,7 +1619,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) } if (!(bh = sb_bread(sb, logic_sb_block))) { - printk (KERN_ERR "EXT3-fs: unable to read superblock\n"); + ext3_msg(sb, KERN_ERR, "error: unable to read superblock"); goto out_fail; } /* @@ -1665,9 +1678,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) (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, @@ -1675,25 +1688,25 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) */ 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, + "error: 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, + "error: 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, + "error: couldn't mount because of unsupported " + "filesystem blocksize %d", blocksize); goto failed_mount; } @@ -1704,30 +1717,31 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) * 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, + "error: fsblocksize %d too small for " + "hardware sectorsize %d", blocksize, hblock); goto failed_mount; } brelse (bh); if (!sb_set_blocksize(sb, blocksize)) { - printk(KERN_ERR "EXT3-fs: bad blocksize %d.\n", - blocksize); + ext3_msg(sb, KERN_ERR, + "error: bad blocksize %d", blocksize); goto out_fail; } logic_sb_block = (sb_block * EXT3_MIN_BLOCK_SIZE) / blocksize; 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, + "error: 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, + "error: magic mismatch"); goto failed_mount; } } @@ -1743,8 +1757,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: unsupported inode size: %d", sbi->s_inode_size); goto failed_mount; } @@ -1752,8 +1766,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: fragsize %lu != blocksize %u (unsupported)", sbi->s_frag_size, blocksize); goto failed_mount; } @@ -1789,31 +1803,31 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) } 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, + "error: #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, + "error: #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, + "error: filesystem is too large to mount safely"); if (sizeof(sector_t) < 8) - printk(KERN_WARNING "EXT3-fs: CONFIG_LBDAF not " - "enabled\n"); + ext3_msg(sb, KERN_ERR, + "error: CONFIG_LBDAF not enabled"); goto failed_mount; } @@ -1827,7 +1841,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: not enough memory"); goto failed_mount; } @@ -1837,14 +1852,15 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: 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, + "error: group descriptors corrupted"); goto failed_mount2; } sbi->s_gdb_count = db_count; @@ -1862,7 +1878,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) ext3_count_dirs(sb)); } if (err) { - printk(KERN_ERR "EXT3-fs: insufficient memory\n"); + ext3_msg(sb, KERN_ERR, "error: insufficient memory"); goto failed_mount3; } @@ -1910,9 +1926,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: no journal found. " + "mounting ext3 over ext2?"); goto failed_mount3; } @@ -1934,8 +1950,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "error: journal does not support " + "requested data journaling mode"); goto failed_mount4; } default: @@ -1944,8 +1961,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, + "warning: ignoring nobh option - " + "its supported only with writeback mode"); clear_opt(sbi->s_mount_opt, NOBH); } } @@ -1956,18 +1974,18 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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, "error: 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, "error: 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, "error: get root dentry failed"); iput(root); ret = -ENOMEM; goto failed_mount4; @@ -1986,9 +2004,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) 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"); @@ -1998,7 +2016,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) cantfind_ext3: if (!silent) - printk(KERN_ERR "VFS: Can't find ext3 filesystem on dev %s.\n", + ext3_msg(sb, KERN_INFO, + "error: can't find ext3 filesystem on dev %s.", sb->s_id); goto failed_mount; @@ -2066,27 +2085,27 @@ static journal_t *ext3_get_journal(struct super_block *sb, 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, "error: 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, "error: 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, "error: 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, "error: could not load journal inode"); iput(journal_inode); return NULL; } @@ -2108,13 +2127,13 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, 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, + "error: failed to claim external journal device"); blkdev_put(bdev, FMODE_READ|FMODE_WRITE); return NULL; } @@ -2122,8 +2141,8 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, blocksize = sb->s_blocksize; hblock = bdev_logical_block_size(bdev); if (blocksize < hblock) { - printk(KERN_ERR - "EXT3-fs: blocksize too small for journal device.\n"); + ext3_msg(sb, KERN_ERR, + "error: blocksize too small for journal device"); goto out_bdev; } @@ -2131,8 +2150,8 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, 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, "error: couldn't read superblock of " + "external journal"); goto out_bdev; } @@ -2140,14 +2159,14 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, 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, "error: 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, "error: journal UUID does not match"); brelse(bh); goto out_bdev; } @@ -2159,19 +2178,21 @@ static journal_t *ext3_get_dev_journal(struct super_block *sb, 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, + "error: 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 " - "user (unsupported) - %d\n", + ext3_msg(sb, KERN_ERR, + "error: external journal has more than one " + "user (unsupported) - %d", be32_to_cpu(journal->j_superblock->s_nr_users)); goto out_journal; } @@ -2197,8 +2218,8 @@ static int ext3_load_journal(struct super_block *sb, 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)); @@ -2213,21 +2234,21 @@ static int ext3_load_journal(struct super_block *sb, 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, + "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, "error: 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, "error: filesystem has both journal " + "and inode journals"); return -EINVAL; } @@ -2242,7 +2263,7 @@ static int ext3_load_journal(struct super_block *sb, 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; } @@ -2254,7 +2275,7 @@ static int ext3_load_journal(struct super_block *sb, 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; } @@ -2273,16 +2294,17 @@ static int ext3_load_journal(struct super_block *sb, return 0; } -static int ext3_create_journal(struct super_block * sb, - struct ext3_super_block * es, +static int ext3_create_journal(struct super_block *sb, + struct ext3_super_block *es, unsigned int journal_inum) { journal_t *journal; 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, + "error: readonly filesystem when trying to " + "create journal"); return -EROFS; } @@ -2290,12 +2312,12 @@ static int ext3_create_journal(struct super_block * sb, 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; } @@ -2376,8 +2398,8 @@ out: * has recorded an error from a previous lifetime, move that error to the * main filesystem now. */ -static void ext3_clear_journal_err(struct super_block * sb, - struct ext3_super_block * es) +static void ext3_clear_journal_err(struct super_block *sb, + struct ext3_super_block *es) { journal_t *journal; int j_errno; @@ -2568,10 +2590,10 @@ static int ext3_remount (struct super_block * sb, int * flags, char * data) __le32 ret; if ((ret = EXT3_HAS_RO_COMPAT_FEATURE(sb, ~EXT3_FEATURE_RO_COMPAT_SUPP))) { - printk(KERN_WARNING "EXT3-fs: %s: couldn't " - "remount RDWR because of unsupported " - "optional features (%x).\n", - sb->s_id, le32_to_cpu(ret)); + ext3_msg(sb, KERN_WARNING, + "warning: couldn't remount RDWR " + "because of unsupported optional " + "features (%x)", le32_to_cpu(ret)); err = -EROFS; goto restore_opts; } @@ -2582,11 +2604,10 @@ static int ext3_remount (struct super_block * sb, int * flags, char * data) * 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, "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 +2858,9 @@ static int ext3_quota_on(struct super_block *sb, int type, int format_id, 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, + "warning: Quota file not on filesystem root. " + "Journaled quota will not work."); } /* @@ -2921,8 +2942,9 @@ static ssize_t ext3_quota_write(struct super_block *sb, int type, 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, + "warning: quota write (off=%llu, len=%llu)" + " cancelled because transaction is not started.", (unsigned long long)off, (unsigned long long)len); return -EIO; } diff --git a/include/linux/ext3_fs.h b/include/linux/ext3_fs.h index 7499b36..6b04903 100644 --- a/include/linux/ext3_fs.h +++ b/include/linux/ext3_fs.h @@ -918,6 +918,8 @@ extern void ext3_abort (struct super_block *, const char *, const char *, ...) __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) \ -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2] Unify log messages in ext3 2009-11-22 19:38 ` [PATCH v2] " Alexey Fisher @ 2009-11-22 19:42 ` Alexey Fisher 2009-11-23 10:36 ` Jan Kara 1 sibling, 0 replies; 11+ messages in thread From: Alexey Fisher @ 2009-11-22 19:42 UTC (permalink / raw) To: Jan Kara; +Cc: Eric Sandeen, Andreas Dilger, linux-ext4, Theodore Tso Am Sonntag, den 22.11.2009, 20:38 +0100 schrieb Alexey Fisher: > make messages produced by ext3 more unified. It should be > easy to parse. > > dmesg before patch: > [ 4893.684892] reservations ON > [ 4893.684896] xip option not supported > [ 4893.684964] EXT3-fs warning: maximal mount count reached, running > e2fsck is recommended I added some changes from Andis patch, so it up to date with git master. I hope this patch will not be lost ;) Regards, Alexey ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] Unify log messages in ext3 2009-11-22 19:38 ` [PATCH v2] " Alexey Fisher 2009-11-22 19:42 ` Alexey Fisher @ 2009-11-23 10:36 ` Jan Kara 2009-11-23 11:45 ` Unify log messages in ext4 Alexey Fisher 1 sibling, 1 reply; 11+ messages in thread From: Jan Kara @ 2009-11-23 10:36 UTC (permalink / raw) To: Alexey Fisher Cc: Jan Kara, Eric Sandeen, Andreas Dilger, linux-ext4, Theodore Tso Thanks for the patch. I've merged it into my tree just with the following typo fixes. Honza > diff --git a/fs/ext3/super.c b/fs/ext3/super.c > index 427496c..b1b6da8 100644 > --- a/fs/ext3/super.c > +++ b/fs/ext3/super.c > @@ -1200,9 +1214,9 @@ set_qf_format: > 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, > + "error: unrecognized mount option \"%s\" " > + "or missing valuen", p); ^^^ value > @@ -1290,22 +1306,20 @@ static int ext3_setup_super(struct super_block *sb, struct ext3_super_block *es, > > ext3_commit_super(sb, es, 1); > if (test_opt(sb, DEBUG)) > - printk(KERN_INFO "[EXT3 FS bs=%lu, gc=%lu, " > - "bpg=%lu, ipg=%lu, mo=%04lx]\n", > + ext3_msg(sb, KERN_INFO, "[bs=%lu, gc=%lu, " > + "bpg=%lu, ipg=%lu, mo=%04lx]", > sb->s_blocksize, > sbi->s_groups_count, > EXT3_BLOCKS_PER_GROUP(sb), > 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", > + ext3_msg(sb, KERN_INFO, "using externa journal on %s", ^^^ external > bdevname(EXT3_SB(sb)->s_journal->j_dev, b)); > } else { > - printk("internal journal\n"); > + ext3_msg(sb, KERN_INFO, "using internal journaln"); ^^^^^ journal > @@ -1944,8 +1961,9 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) > > 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, > + "warning: ignoring nobh option - " > + "its supported only with writeback mode"); ^^^ it is Honza -- Jan Kara <jack@suse.cz> SUSE Labs, CR ^ permalink raw reply [flat|nested] 11+ messages in thread
* Unify log messages in ext4 2009-11-23 10:36 ` Jan Kara @ 2009-11-23 11:45 ` Alexey Fisher 2009-11-23 11:55 ` Jan Kara 0 siblings, 1 reply; 11+ messages in thread From: Alexey Fisher @ 2009-11-23 11:45 UTC (permalink / raw) To: Jan Kara; +Cc: Eric Sandeen, Andreas Dilger, linux-ext4, Theodore Tso Am Montag, den 23.11.2009, 11:36 +0100 schrieb Jan Kara: > Thanks for the patch. I've merged it into my tree just with the following > typo fixes. Thank you, are there any ext4 patches around? Or this will be my next step. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Unify log messages in ext4 2009-11-23 11:45 ` Unify log messages in ext4 Alexey Fisher @ 2009-11-23 11:55 ` Jan Kara 2009-11-23 14:11 ` tytso 0 siblings, 1 reply; 11+ messages in thread From: Jan Kara @ 2009-11-23 11:55 UTC (permalink / raw) To: Alexey Fisher Cc: Jan Kara, Eric Sandeen, Andreas Dilger, linux-ext4, Theodore Tso On Mon 23-11-09 12:45:36, Alexey Fisher wrote: > Am Montag, den 23.11.2009, 11:36 +0100 schrieb Jan Kara: > > Thanks for the patch. I've merged it into my tree just with the following > > typo fixes. > > Thank you, > are there any ext4 patches around? Or this will be my next step. I'm not aware of them... Honza -- Jan Kara <jack@suse.cz> SUSE Labs, CR ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Unify log messages in ext4 2009-11-23 11:55 ` Jan Kara @ 2009-11-23 14:11 ` tytso 2009-11-23 15:11 ` Alexey Fisher 2009-11-23 16:16 ` Eric Sandeen 0 siblings, 2 replies; 11+ messages in thread From: tytso @ 2009-11-23 14:11 UTC (permalink / raw) To: Jan Kara; +Cc: Alexey Fisher, Eric Sandeen, Andreas Dilger, linux-ext4 On Mon, Nov 23, 2009 at 12:55:14PM +0100, Jan Kara wrote: > On Mon 23-11-09 12:45:36, Alexey Fisher wrote: > > Am Montag, den 23.11.2009, 11:36 +0100 schrieb Jan Kara: > > > Thanks for the patch. I've merged it into my tree just with the following > > > typo fixes. > > > > Thank you, > > are there any ext4 patches around? Or this will be my next step. > I'm not aware of them... Ext4 is using ext4_msg() already. Eric Sandeen added it a while ago, and the idea to convert ext2 and ext4 to use ext2_msg() and ext3_msg() came from ext4. - Ted ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Unify log messages in ext4 2009-11-23 14:11 ` tytso @ 2009-11-23 15:11 ` Alexey Fisher 2009-11-23 16:16 ` Eric Sandeen 1 sibling, 0 replies; 11+ messages in thread From: Alexey Fisher @ 2009-11-23 15:11 UTC (permalink / raw) To: tytso; +Cc: Jan Kara, Eric Sandeen, Andreas Dilger, linux-ext4 Am Montag, den 23.11.2009, 09:11 -0500 schrieb tytso@mit.edu: > On Mon, Nov 23, 2009 at 12:55:14PM +0100, Jan Kara wrote: > > On Mon 23-11-09 12:45:36, Alexey Fisher wrote: > > > Am Montag, den 23.11.2009, 11:36 +0100 schrieb Jan Kara: > > > > Thanks for the patch. I've merged it into my tree just with the following > > > > typo fixes. > > > > > > Thank you, > > > are there any ext4 patches around? Or this will be my next step. > > I'm not aware of them... > > Ext4 is using ext4_msg() already. Eric Sandeen added it a while ago, > and the idea to convert ext2 and ext4 to use ext2_msg() and ext3_msg() > came from ext4. O, yeah.. i greped ext4/super.c and there is no mach left. now i have most i need from ext[234], Thank you, Alexey ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Unify log messages in ext4 2009-11-23 14:11 ` tytso 2009-11-23 15:11 ` Alexey Fisher @ 2009-11-23 16:16 ` Eric Sandeen 1 sibling, 0 replies; 11+ messages in thread From: Eric Sandeen @ 2009-11-23 16:16 UTC (permalink / raw) To: tytso; +Cc: Jan Kara, Alexey Fisher, Andreas Dilger, linux-ext4 tytso@mit.edu wrote: > On Mon, Nov 23, 2009 at 12:55:14PM +0100, Jan Kara wrote: >> On Mon 23-11-09 12:45:36, Alexey Fisher wrote: >>> Am Montag, den 23.11.2009, 11:36 +0100 schrieb Jan Kara: >>>> Thanks for the patch. I've merged it into my tree just with the following >>>> typo fixes. >>> Thank you, >>> are there any ext4 patches around? Or this will be my next step. >> I'm not aware of them... > > Ext4 is using ext4_msg() already. Eric Sandeen added it a while ago, > and the idea to convert ext2 and ext4 to use ext2_msg() and ext3_msg() > came from ext4. > > - Ted Actually, I think Andi originally sent it for ext3, and I motivated to do it for ext4; the ext3 patch from Andi got lost... -Eric ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2009-11-23 16:16 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-11-21 10:25 [PATCH v1] Unify log messages in ext3 Alexey Fisher 2009-11-21 23:55 ` Eric Sandeen 2009-11-22 19:12 ` Alexey Fisher 2009-11-22 19:38 ` [PATCH v2] " Alexey Fisher 2009-11-22 19:42 ` Alexey Fisher 2009-11-23 10:36 ` Jan Kara 2009-11-23 11:45 ` Unify log messages in ext4 Alexey Fisher 2009-11-23 11:55 ` Jan Kara 2009-11-23 14:11 ` tytso 2009-11-23 15:11 ` Alexey Fisher 2009-11-23 16:16 ` Eric Sandeen
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.