udf: Neaten logging output, use vsprintf extension %pV

Use %pV and remove a static buffer to save some text space and fix possible
issues when several processes call error reporting function in parallel. Also
change error level from KERN_CRIT to KERN_ERR.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
Joe Perches 2011-10-10 01:08:06 -07:00 коммит произвёл Jan Kara
Родитель 78ace70c41
Коммит c2bff36c29
1 изменённых файлов: 17 добавлений и 11 удалений

Просмотреть файл

@ -75,8 +75,6 @@
#define UDF_DEFAULT_BLOCKSIZE 2048 #define UDF_DEFAULT_BLOCKSIZE 2048
static char error_buf[1024];
/* These are the "meat" - everything else is stuffing */ /* These are the "meat" - everything else is stuffing */
static int udf_fill_super(struct super_block *, void *, int); static int udf_fill_super(struct super_block *, void *, int);
static void udf_put_super(struct super_block *); static void udf_put_super(struct super_block *);
@ -2077,29 +2075,37 @@ error_out:
void _udf_err(struct super_block *sb, const char *function, void _udf_err(struct super_block *sb, const char *function,
const char *fmt, ...) const char *fmt, ...)
{ {
struct va_format vaf;
va_list args; va_list args;
if (!(sb->s_flags & MS_RDONLY)) { /* mark sb error */
/* mark sb error */ if (!(sb->s_flags & MS_RDONLY))
sb->s_dirt = 1; sb->s_dirt = 1;
}
va_start(args, fmt); va_start(args, fmt);
vsnprintf(error_buf, sizeof(error_buf), fmt, args);
vaf.fmt = fmt;
vaf.va = &args;
pr_err("error (device %s): %s: %pV", sb->s_id, function, &vaf);
va_end(args); va_end(args);
pr_crit("error (device %s): %s: %s",
sb->s_id, function, error_buf);
} }
void _udf_warn(struct super_block *sb, const char *function, void _udf_warn(struct super_block *sb, const char *function,
const char *fmt, ...) const char *fmt, ...)
{ {
struct va_format vaf;
va_list args; va_list args;
va_start(args, fmt); va_start(args, fmt);
vsnprintf(error_buf, sizeof(error_buf), fmt, args);
vaf.fmt = fmt;
vaf.va = &args;
pr_warn("warning (device %s): %s: %pV", sb->s_id, function, &vaf);
va_end(args); va_end(args);
pr_warn("warning (device %s): %s: %s",
sb->s_id, function, error_buf);
} }
static void udf_put_super(struct super_block *sb) static void udf_put_super(struct super_block *sb)