extern void ext4_error_file(const char *, struct file *, const char *, ...)
        __attribute__ ((format (printf, 3, 4)));
 extern void __ext4_std_error(struct super_block *, const char *, int);
-extern void ext4_abort(struct super_block *, const char *, const char *, ...)
+extern void __ext4_abort(struct super_block *, const char *, const char *, ...)
        __attribute__ ((format (printf, 3, 4)));
+#define ext4_abort(sb, message...)     __ext4_abort(sb, __func__, \
+                                                    ## message)
 extern void __ext4_warning(struct super_block *, const char *,
                          const char *, ...)
        __attribute__ ((format (printf, 3, 4)));
 
        err = jbd2_journal_revoke(handle, blocknr, bh);
        if (err) {
                ext4_journal_abort_handle(where, __func__, bh, handle, err);
-               ext4_abort(inode->i_sb, __func__,
-                          "error %d when attempting revoke", err);
+               __ext4_abort(inode->i_sb, where,
+                            "error %d when attempting revoke", err);
        }
        BUFFER_TRACE(bh, "exit");
        return err;
 
        journal = EXT4_SB(sb)->s_journal;
        if (journal) {
                if (is_journal_aborted(journal)) {
-                       ext4_abort(sb, __func__, "Detected aborted journal");
+                       ext4_abort(sb, "Detected aborted journal");
                        return ERR_PTR(-EROFS);
                }
                return jbd2_journal_start(journal, nblocks);
  * case we take the easy way out and panic immediately.
  */
 
-void ext4_abort(struct super_block *sb, const char *function,
-               const char *fmt, ...)
+void __ext4_abort(struct super_block *sb, const char *function,
+                 const char *fmt, ...)
 {
        va_list args;
 
                err = jbd2_journal_destroy(sbi->s_journal);
                sbi->s_journal = NULL;
                if (err < 0)
-                       ext4_abort(sb, __func__,
-                                  "Couldn't clean up the journal");
+                       ext4_abort(sb, "Couldn't clean up the journal");
        }
 
        ext4_release_system_zone(sb);
        }
 
        if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)
-               ext4_abort(sb, __func__, "Abort forced by user");
+               ext4_abort(sb, "Abort forced by user");
 
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);