OSDN Git Service

struct p_log, variants of warnf() et.al. taking that one instead
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 21 Dec 2019 04:43:32 +0000 (23:43 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 7 Feb 2020 19:48:32 +0000 (14:48 -0500)
primitives for prefixed logging

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/block/rbd.c
include/linux/fs_context.h

index 9fc686b..1dd758e 100644 (file)
@@ -6353,6 +6353,7 @@ static int rbd_parse_param(struct fs_parameter *param,
 {
        struct rbd_options *opt = pctx->opts;
        struct fs_parse_result result;
+       struct p_log log = {.prefix = "rbd"};
        int token, ret;
 
        ret = ceph_parse_param(param, pctx->copts, NULL);
index d18ff42..6a7eeb2 100644 (file)
@@ -73,6 +73,11 @@ struct fs_parameter {
        int     dirfd;
 };
 
+struct p_log {
+       const char *prefix;
+       struct fc_log *log;
+};
+
 /*
  * Filesystem context for holding the parameters used in the creation or
  * reconfiguration of a superblock.
@@ -188,6 +193,8 @@ void logfc(struct fc_log *log, const char *prefix, char level, const char *fmt,
        struct fs_context *__fc = (fc);         \
        logfc(__fc ? __fc->log : NULL, NULL,    \
                l, fmt, ## __VA_ARGS__);})
+#define __plog(p, l, fmt, ...) logfc((p)->log, (p)->prefix, \
+                                       l, fmt, ## __VA_ARGS__)
 /**
  * infof - Store supplementary informational message
  * @fc: The context in which to log the informational message
@@ -197,6 +204,7 @@ void logfc(struct fc_log *log, const char *prefix, char level, const char *fmt,
  * has enabled the facility.
  */
 #define infof(fc, fmt, ...) __logfc(fc, 'i', fmt, ## __VA_ARGS__)
+#define info_plog(p, fmt, ...) __plog(p, 'i', fmt, ## __VA_ARGS__)
 
 /**
  * warnf - Store supplementary warning message
@@ -207,6 +215,7 @@ void logfc(struct fc_log *log, const char *prefix, char level, const char *fmt,
  * enabled the facility.
  */
 #define warnf(fc, fmt, ...) __logfc(fc, 'w', fmt, ## __VA_ARGS__)
+#define warn_plog(p, fmt, ...) __plog(p, 'w', fmt, ## __VA_ARGS__)
 
 /**
  * errorf - Store supplementary error message
@@ -217,6 +226,7 @@ void logfc(struct fc_log *log, const char *prefix, char level, const char *fmt,
  * enabled the facility.
  */
 #define errorf(fc, fmt, ...) __logfc(fc, 'e', fmt, ## __VA_ARGS__)
+#define error_plog(p, fmt, ...) __plog(p, 'e', fmt, ## __VA_ARGS__)
 
 /**
  * invalf - Store supplementary invalid argument error message
@@ -227,5 +237,6 @@ void logfc(struct fc_log *log, const char *prefix, char level, const char *fmt,
  * enabled the facility and return -EINVAL.
  */
 #define invalf(fc, fmt, ...) (errorf(fc, fmt, ## __VA_ARGS__), -EINVAL)
+#define inval_plog(p, fmt, ...) (error_plog(p, fmt, ## __VA_ARGS__), -EINVAL)
 
 #endif /* _LINUX_FS_CONTEXT_H */