diff options
author | Joe Perches <joe@perches.com> | 2011-10-10 01:08:06 -0700 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2011-10-31 23:43:58 +0100 |
commit | c2bff36c299b88ca5e05638dfa210d709e2a87ef (patch) | |
tree | 29039a1fbd12fa25b1ba76be929b261e58c9ddd8 /fs/udf/super.c | |
parent | 78ace70c4186c0d18314eb001637aa97d1585e65 (diff) | |
download | op-kernel-dev-c2bff36c299b88ca5e05638dfa210d709e2a87ef.zip op-kernel-dev-c2bff36c299b88ca5e05638dfa210d709e2a87ef.tar.gz |
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>
Diffstat (limited to 'fs/udf/super.c')
-rw-r--r-- | fs/udf/super.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/fs/udf/super.c b/fs/udf/super.c index 39e3f35..926228e 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c @@ -75,8 +75,6 @@ #define UDF_DEFAULT_BLOCKSIZE 2048 -static char error_buf[1024]; - /* These are the "meat" - everything else is stuffing */ static int udf_fill_super(struct super_block *, void *, int); static void udf_put_super(struct super_block *); @@ -2077,29 +2075,37 @@ error_out: void _udf_err(struct super_block *sb, const char *function, const char *fmt, ...) { + struct va_format vaf; 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; - } + 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); - pr_crit("error (device %s): %s: %s", - sb->s_id, function, error_buf); } void _udf_warn(struct super_block *sb, const char *function, const char *fmt, ...) { + struct va_format vaf; va_list args; 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); - pr_warn("warning (device %s): %s: %s", - sb->s_id, function, error_buf); } static void udf_put_super(struct super_block *sb) |