|
@@ -18,16 +18,9 @@
|
|
|
* distribution in the file COPYING); if not, write to the Free Software
|
|
|
* Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
*/
|
|
|
-
|
|
|
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
|
|
#include "debug.h"
|
|
|
|
|
|
-/*
|
|
|
- * A static buffer to hold the error string being displayed and a spinlock
|
|
|
- * to protect concurrent accesses to it.
|
|
|
- */
|
|
|
-static char err_buf[1024];
|
|
|
-static DEFINE_SPINLOCK(err_buf_lock);
|
|
|
-
|
|
|
/**
|
|
|
* __ntfs_warning - output a warning to the syslog
|
|
|
* @function: name of function outputting the warning
|
|
@@ -50,6 +43,7 @@ static DEFINE_SPINLOCK(err_buf_lock);
|
|
|
void __ntfs_warning(const char *function, const struct super_block *sb,
|
|
|
const char *fmt, ...)
|
|
|
{
|
|
|
+ struct va_format vaf;
|
|
|
va_list args;
|
|
|
int flen = 0;
|
|
|
|
|
@@ -59,17 +53,15 @@ void __ntfs_warning(const char *function, const struct super_block *sb,
|
|
|
#endif
|
|
|
if (function)
|
|
|
flen = strlen(function);
|
|
|
- spin_lock(&err_buf_lock);
|
|
|
va_start(args, fmt);
|
|
|
- vsnprintf(err_buf, sizeof(err_buf), fmt, args);
|
|
|
- va_end(args);
|
|
|
+ vaf.fmt = fmt;
|
|
|
+ vaf.va = &args;
|
|
|
if (sb)
|
|
|
- printk(KERN_ERR "NTFS-fs warning (device %s): %s(): %s\n",
|
|
|
- sb->s_id, flen ? function : "", err_buf);
|
|
|
+ pr_warn("(device %s): %s(): %pV\n",
|
|
|
+ sb->s_id, flen ? function : "", &vaf);
|
|
|
else
|
|
|
- printk(KERN_ERR "NTFS-fs warning: %s(): %s\n",
|
|
|
- flen ? function : "", err_buf);
|
|
|
- spin_unlock(&err_buf_lock);
|
|
|
+ pr_warn("%s(): %pV\n", flen ? function : "", &vaf);
|
|
|
+ va_end(args);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -94,6 +86,7 @@ void __ntfs_warning(const char *function, const struct super_block *sb,
|
|
|
void __ntfs_error(const char *function, const struct super_block *sb,
|
|
|
const char *fmt, ...)
|
|
|
{
|
|
|
+ struct va_format vaf;
|
|
|
va_list args;
|
|
|
int flen = 0;
|
|
|
|
|
@@ -103,17 +96,15 @@ void __ntfs_error(const char *function, const struct super_block *sb,
|
|
|
#endif
|
|
|
if (function)
|
|
|
flen = strlen(function);
|
|
|
- spin_lock(&err_buf_lock);
|
|
|
va_start(args, fmt);
|
|
|
- vsnprintf(err_buf, sizeof(err_buf), fmt, args);
|
|
|
- va_end(args);
|
|
|
+ vaf.fmt = fmt;
|
|
|
+ vaf.va = &args;
|
|
|
if (sb)
|
|
|
- printk(KERN_ERR "NTFS-fs error (device %s): %s(): %s\n",
|
|
|
- sb->s_id, flen ? function : "", err_buf);
|
|
|
+ pr_err("(device %s): %s(): %pV\n",
|
|
|
+ sb->s_id, flen ? function : "", &vaf);
|
|
|
else
|
|
|
- printk(KERN_ERR "NTFS-fs error: %s(): %s\n",
|
|
|
- flen ? function : "", err_buf);
|
|
|
- spin_unlock(&err_buf_lock);
|
|
|
+ pr_err("%s(): %pV\n", flen ? function : "", &vaf);
|
|
|
+ va_end(args);
|
|
|
}
|
|
|
|
|
|
#ifdef DEBUG
|
|
@@ -124,6 +115,7 @@ int debug_msgs = 0;
|
|
|
void __ntfs_debug (const char *file, int line, const char *function,
|
|
|
const char *fmt, ...)
|
|
|
{
|
|
|
+ struct va_format vaf;
|
|
|
va_list args;
|
|
|
int flen = 0;
|
|
|
|
|
@@ -131,13 +123,11 @@ void __ntfs_debug (const char *file, int line, const char *function,
|
|
|
return;
|
|
|
if (function)
|
|
|
flen = strlen(function);
|
|
|
- spin_lock(&err_buf_lock);
|
|
|
va_start(args, fmt);
|
|
|
- vsnprintf(err_buf, sizeof(err_buf), fmt, args);
|
|
|
+ vaf.fmt = fmt;
|
|
|
+ vaf.va = &args;
|
|
|
+ pr_debug("(%s, %d): %s(): %pV", file, line, flen ? function : "", &vaf);
|
|
|
va_end(args);
|
|
|
- printk(KERN_DEBUG "NTFS-fs DEBUG (%s, %d): %s(): %s\n", file, line,
|
|
|
- flen ? function : "", err_buf);
|
|
|
- spin_unlock(&err_buf_lock);
|
|
|
}
|
|
|
|
|
|
/* Dump a runlist. Caller has to provide synchronisation for @rl. */
|
|
@@ -149,12 +139,12 @@ void ntfs_debug_dump_runlist(const runlist_element *rl)
|
|
|
|
|
|
if (!debug_msgs)
|
|
|
return;
|
|
|
- printk(KERN_DEBUG "NTFS-fs DEBUG: Dumping runlist (values in hex):\n");
|
|
|
+ pr_debug("Dumping runlist (values in hex):\n");
|
|
|
if (!rl) {
|
|
|
- printk(KERN_DEBUG "Run list not present.\n");
|
|
|
+ pr_debug("Run list not present.\n");
|
|
|
return;
|
|
|
}
|
|
|
- printk(KERN_DEBUG "VCN LCN Run length\n");
|
|
|
+ pr_debug("VCN LCN Run length\n");
|
|
|
for (i = 0; ; i++) {
|
|
|
LCN lcn = (rl + i)->lcn;
|
|
|
|
|
@@ -163,13 +153,13 @@ void ntfs_debug_dump_runlist(const runlist_element *rl)
|
|
|
|
|
|
if (index > -LCN_ENOENT - 1)
|
|
|
index = 3;
|
|
|
- printk(KERN_DEBUG "%-16Lx %s %-16Lx%s\n",
|
|
|
+ pr_debug("%-16Lx %s %-16Lx%s\n",
|
|
|
(long long)(rl + i)->vcn, lcn_str[index],
|
|
|
(long long)(rl + i)->length,
|
|
|
(rl + i)->length ? "" :
|
|
|
" (runlist end)");
|
|
|
} else
|
|
|
- printk(KERN_DEBUG "%-16Lx %-16Lx %-16Lx%s\n",
|
|
|
+ pr_debug("%-16Lx %-16Lx %-16Lx%s\n",
|
|
|
(long long)(rl + i)->vcn,
|
|
|
(long long)(rl + i)->lcn,
|
|
|
(long long)(rl + i)->length,
|