Skip to content

Commit

Permalink
ext4: Use printf extension %pV
Browse files Browse the repository at this point in the history
Using %pV reduces the number of printk calls and eliminates any
possible message interleaving from other printk calls.

In function __ext4_grp_locked_error also added KERN_CONT to some
printks.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
  • Loading branch information
Joe Perches authored and Theodore Ts'o committed Dec 20, 2010
1 parent 94de56a commit 0ff2ea7
Showing 1 changed file with 23 additions and 17 deletions.
40 changes: 23 additions & 17 deletions fs/ext4/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -388,13 +388,14 @@ static void ext4_handle_error(struct super_block *sb)
void __ext4_error(struct super_block *sb, const char *function,
unsigned int line, const char *fmt, ...)
{
struct va_format vaf;
va_list args;

va_start(args, fmt);
printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: comm %s: ",
sb->s_id, function, line, current->comm);
vprintk(fmt, args);
printk("\n");
vaf.fmt = fmt;
vaf.va = &args;
printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: comm %s: %pV\n",
sb->s_id, function, line, current->comm, &vaf);
va_end(args);

ext4_handle_error(sb);
Expand Down Expand Up @@ -543,28 +544,29 @@ void __ext4_abort(struct super_block *sb, const char *function,
panic("EXT4-fs panic from previous error\n");
}

void ext4_msg (struct super_block * sb, const char *prefix,
const char *fmt, ...)
void ext4_msg(struct super_block *sb, const char *prefix, const char *fmt, ...)
{
struct va_format vaf;
va_list args;

va_start(args, fmt);
printk("%sEXT4-fs (%s): ", prefix, sb->s_id);
vprintk(fmt, args);
printk("\n");
vaf.fmt = fmt;
vaf.va = &args;
printk("%sEXT4-fs (%s): %pV\n", prefix, sb->s_id, &vaf);
va_end(args);
}

void __ext4_warning(struct super_block *sb, const char *function,
unsigned int line, const char *fmt, ...)
{
struct va_format vaf;
va_list args;

va_start(args, fmt);
printk(KERN_WARNING "EXT4-fs warning (device %s): %s:%d: ",
sb->s_id, function, line);
vprintk(fmt, args);
printk("\n");
vaf.fmt = fmt;
vaf.va = &args;
printk(KERN_WARNING "EXT4-fs warning (device %s): %s:%d: %pV\n",
sb->s_id, function, line, &vaf);
va_end(args);
}

Expand All @@ -575,21 +577,25 @@ void __ext4_grp_locked_error(const char *function, unsigned int line,
__releases(bitlock)
__acquires(bitlock)
{
struct va_format vaf;
va_list args;
struct ext4_super_block *es = EXT4_SB(sb)->s_es;

es->s_last_error_ino = cpu_to_le32(ino);
es->s_last_error_block = cpu_to_le64(block);
__save_error_info(sb, function, line);

va_start(args, fmt);

vaf.fmt = fmt;
vaf.va = &args;
printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: group %u",
sb->s_id, function, line, grp);
if (ino)
printk("inode %lu: ", ino);
printk(KERN_CONT "inode %lu: ", ino);
if (block)
printk("block %llu:", (unsigned long long) block);
vprintk(fmt, args);
printk("\n");
printk(KERN_CONT "block %llu:", (unsigned long long) block);
printk(KERN_CONT "%pV\n", &vaf);
va_end(args);

if (test_opt(sb, ERRORS_CONT)) {
Expand Down

0 comments on commit 0ff2ea7

Please sign in to comment.