|
@@ -597,14 +597,15 @@ void __ext4_std_error(struct super_block *sb, const char *function,
|
|
|
void __ext4_abort(struct super_block *sb, const char *function,
|
|
|
unsigned int line, const char *fmt, ...)
|
|
|
{
|
|
|
+ struct va_format vaf;
|
|
|
va_list args;
|
|
|
|
|
|
save_error_info(sb, function, line);
|
|
|
va_start(args, fmt);
|
|
|
- printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: ", sb->s_id,
|
|
|
- function, line);
|
|
|
- vprintk(fmt, args);
|
|
|
- printk("\n");
|
|
|
+ vaf.fmt = fmt;
|
|
|
+ vaf.va = &args;
|
|
|
+ printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: %pV\n",
|
|
|
+ sb->s_id, function, line, &vaf);
|
|
|
va_end(args);
|
|
|
|
|
|
if ((sb->s_flags & MS_RDONLY) == 0) {
|
|
@@ -2715,12 +2716,12 @@ static void print_daily_error_info(unsigned long arg)
|
|
|
es->s_first_error_func,
|
|
|
le32_to_cpu(es->s_first_error_line));
|
|
|
if (es->s_first_error_ino)
|
|
|
- printk(": inode %u",
|
|
|
+ printk(KERN_CONT ": inode %u",
|
|
|
le32_to_cpu(es->s_first_error_ino));
|
|
|
if (es->s_first_error_block)
|
|
|
- printk(": block %llu", (unsigned long long)
|
|
|
+ printk(KERN_CONT ": block %llu", (unsigned long long)
|
|
|
le64_to_cpu(es->s_first_error_block));
|
|
|
- printk("\n");
|
|
|
+ printk(KERN_CONT "\n");
|
|
|
}
|
|
|
if (es->s_last_error_time) {
|
|
|
printk(KERN_NOTICE "EXT4-fs (%s): last error at time %u: %.*s:%d",
|
|
@@ -2729,12 +2730,12 @@ static void print_daily_error_info(unsigned long arg)
|
|
|
es->s_last_error_func,
|
|
|
le32_to_cpu(es->s_last_error_line));
|
|
|
if (es->s_last_error_ino)
|
|
|
- printk(": inode %u",
|
|
|
+ printk(KERN_CONT ": inode %u",
|
|
|
le32_to_cpu(es->s_last_error_ino));
|
|
|
if (es->s_last_error_block)
|
|
|
- printk(": block %llu", (unsigned long long)
|
|
|
+ printk(KERN_CONT ": block %llu", (unsigned long long)
|
|
|
le64_to_cpu(es->s_last_error_block));
|
|
|
- printk("\n");
|
|
|
+ printk(KERN_CONT "\n");
|
|
|
}
|
|
|
mod_timer(&sbi->s_err_report, jiffies + 24*60*60*HZ); /* Once a day */
|
|
|
}
|