Merge branch 'next' into for-linus
[cascardo/linux.git] / fs / fat / misc.c
index 970e682..6d93360 100644 (file)
  * In case the file system is remounted read-only, it can be made writable
  * again by remounting it.
  */
-void __fat_fs_error(struct super_block *s, int report, const char *fmt, ...)
+void __fat_fs_error(struct super_block *sb, int report, const char *fmt, ...)
 {
-       struct fat_mount_options *opts = &MSDOS_SB(s)->options;
+       struct fat_mount_options *opts = &MSDOS_SB(sb)->options;
        va_list args;
+       struct va_format vaf;
 
        if (report) {
-               printk(KERN_ERR "FAT: Filesystem error (dev %s)\n", s->s_id);
-
-               printk(KERN_ERR "    ");
                va_start(args, fmt);
-               vprintk(fmt, args);
+               vaf.fmt = fmt;
+               vaf.va = &args;
+               printk(KERN_ERR "FAT-fs (%s): error, %pV\n", sb->s_id, &vaf);
                va_end(args);
-               printk("\n");
        }
 
        if (opts->errors == FAT_ERRORS_PANIC)
-               panic("FAT: fs panic from previous error\n");
-       else if (opts->errors == FAT_ERRORS_RO && !(s->s_flags & MS_RDONLY)) {
-               s->s_flags |= MS_RDONLY;
-               printk(KERN_ERR "FAT: Filesystem has been set read-only\n");
+               panic("FAT-fs (%s): fs panic from previous error\n", sb->s_id);
+       else if (opts->errors == FAT_ERRORS_RO && !(sb->s_flags & MS_RDONLY)) {
+               sb->s_flags |= MS_RDONLY;
+               printk(KERN_ERR "FAT-fs (%s): Filesystem has been "
+                               "set read-only\n", sb->s_id);
        }
 }
 EXPORT_SYMBOL_GPL(__fat_fs_error);
 
+/**
+ * fat_msg() - print preformated FAT specific messages. Every thing what is
+ * not fat_fs_error() should be fat_msg().
+ */
+void fat_msg(struct super_block *sb, const char *level, const char *fmt, ...)
+{
+       struct va_format vaf;
+       va_list args;
+
+       va_start(args, fmt);
+       vaf.fmt = fmt;
+       vaf.va = &args;
+       printk("%sFAT-fs (%s): %pV\n", level, sb->s_id, &vaf);
+       va_end(args);
+}
+
 /* Flushes the number of free clusters on FAT32 */
 /* XXX: Need to write one per FSINFO block.  Currently only writes 1 */
 int fat_clusters_flush(struct super_block *sb)
@@ -57,15 +73,15 @@ int fat_clusters_flush(struct super_block *sb)
 
        bh = sb_bread(sb, sbi->fsinfo_sector);
        if (bh == NULL) {
-               printk(KERN_ERR "FAT: bread failed in fat_clusters_flush\n");
+               fat_msg(sb, KERN_ERR, "bread failed in fat_clusters_flush");
                return -EIO;
        }
 
        fsinfo = (struct fat_boot_fsinfo *)bh->b_data;
        /* Sanity check */
        if (!IS_FSINFO(fsinfo)) {
-               printk(KERN_ERR "FAT: Invalid FSINFO signature: "
-                      "0x%08x, 0x%08x (sector = %lu)\n",
+               fat_msg(sb, KERN_ERR, "Invalid FSINFO signature: "
+                      "0x%08x, 0x%08x (sector = %lu)",
                       le32_to_cpu(fsinfo->signature1),
                       le32_to_cpu(fsinfo->signature2),
                       sbi->fsinfo_sector);