* [PATCH v3 0/2] btrfs-progs: Introduce warning and error for common use
@ 2015-09-28 13:58 Zhao Lei
2015-09-28 13:58 ` [PATCH v3 1/2] " Zhao Lei
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Zhao Lei @ 2015-09-28 13:58 UTC (permalink / raw)
To: linux-btrfs; +Cc: Zhao Lei, Qu Wenruo
Current code use fprintf(stderr, "...") to output warnning and
error information.
The error message have different style, as:
# grep fprintf *.c
fprintf(stderr, "Open ctree failed\n");
fprintf(stderr, "%s: open ctree failed\n", __func__);
fprintf(stderr, "ERROR: cannot open ctree\n");
...
And sometimes, we forgot add tailed '\n', or use printf instead,
as in current code:
printf("warning, device %llu is missing\n",
This patch introduce warning() and error() as common function,
to make:
1: Each warning and error information have same format
2: Easy to search/change all error message
3: Easy to modify function's internal for debug or other requirement,
for example:
print function/linenumber in error()
dumpstack in error()
add some trace for some style of message
add support for -v, -vv, ...
support for locales
custom output functions
support some special device/tty
Converting all source is a big work, this patch convert cmds-scrub.c
We'll convert others these days, and new code can use these function
directly.
Changelog v2->v3:
1: Put variable definition to top of function
2: Move __veprintf() to warning()/error()'s internal
All suggested-by: David Sterba <dsterba@suse.cz>
Changelog v1->v2:
1: Rename following functions:
warningon() -> warning_on()
erroron() -> error_on()
Suggested-by: David Sterba <dsterba@suse.cz>
2: Use static inline instead of macro
Suggested-by: David Sterba <dsterba@suse.cz>
3: Add return value of warning/error_on()
Suggested-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Zhao Lei (2):
btrfs-progs: Introduce warning and error for common use
btrfs-progs: use common warning/error for cmds-scrub.c
cmds-scrub.c | 176 +++++++++++++++++++++++++++++------------------------------
utils.h | 51 +++++++++++++++++
2 files changed, 138 insertions(+), 89 deletions(-)
--
1.8.5.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 1/2] btrfs-progs: Introduce warning and error for common use
2015-09-28 13:58 [PATCH v3 0/2] btrfs-progs: Introduce warning and error for common use Zhao Lei
@ 2015-09-28 13:58 ` Zhao Lei
2015-09-30 16:20 ` David Sterba
2015-09-28 13:58 ` [PATCH v3 2/2] btrfs-progs: use common warning/error for cmds-scrub.c Zhao Lei
2015-09-30 16:43 ` [PATCH v3 0/2] btrfs-progs: Introduce warning and error for common use David Sterba
2 siblings, 1 reply; 5+ messages in thread
From: Zhao Lei @ 2015-09-28 13:58 UTC (permalink / raw)
To: linux-btrfs; +Cc: Zhao Lei, Qu Wenruo
Current code use fprintf(stderr, "...") to output warnning and
error information.
The error message have different style, as:
# grep fprintf *.c
fprintf(stderr, "Open ctree failed\n");
fprintf(stderr, "%s: open ctree failed\n", __func__);
fprintf(stderr, "ERROR: cannot open ctree\n");
...
And sometimes, we forgot add tailed '\n', or use printf instead,
as in current code:
printf("warning, device %llu is missing\n",
This patch introduce warning() and error() as common function,
to make:
1: Each warning and error information have same format
2: Easy to search/change all error message
3: Easy to modify function's internal for debug or other requirement,
for example:
print function/linenumber in error()
dumpstack in error()
add some trace for some style of message
add support for -v, -vv, ...
support for locales
custom output functions
support some special device/tty
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
---
utils.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/utils.h b/utils.h
index 192f3d1..ba9ba10 100644
--- a/utils.h
+++ b/utils.h
@@ -22,6 +22,7 @@
#include <sys/stat.h>
#include "ctree.h"
#include <dirent.h>
+#include <stdarg.h>
#define BTRFS_MKFS_SYSTEM_GROUP_SIZE (4 * 1024 * 1024)
#define BTRFS_MKFS_SMALL_VOLUME_SIZE (1024 * 1024 * 1024)
@@ -270,4 +271,54 @@ const char *get_argv0_buf(void);
unsigned int get_unit_mode_from_arg(int *argc, char *argv[], int df_mode);
+static inline void warning(const char *fmt, ...)
+{
+ va_list args;
+
+ fputs("WARNING: ", stderr);
+ va_start(args, fmt);
+ vfprintf(stderr, fmt, args);
+ va_end(args);
+}
+
+static inline void error(const char *fmt, ...)
+{
+ va_list args;
+
+ fputs("ERROR: ", stderr);
+ va_start(args, fmt);
+ vfprintf(stderr, fmt, args);
+ va_end(args);
+}
+
+static inline int warning_on(int condition, const char *fmt, ...)
+{
+ va_list args;
+
+ if (!condition)
+ return 0;
+
+ fputs("WARNING: ", stderr);
+ va_start(args, fmt);
+ vfprintf(stderr, fmt, args);
+ va_end(args);
+
+ return 1;
+}
+
+static inline int error_on(int condition, const char *fmt, ...)
+{
+ va_list args;
+
+ if (!condition)
+ return 0;
+
+ fputs("ERROR: ", stderr);
+ va_start(args, fmt);
+ vfprintf(stderr, fmt, args);
+ va_end(args);
+
+ return 1;
+}
+
#endif
--
1.8.5.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 2/2] btrfs-progs: use common warning/error for cmds-scrub.c
2015-09-28 13:58 [PATCH v3 0/2] btrfs-progs: Introduce warning and error for common use Zhao Lei
2015-09-28 13:58 ` [PATCH v3 1/2] " Zhao Lei
@ 2015-09-28 13:58 ` Zhao Lei
2015-09-30 16:43 ` [PATCH v3 0/2] btrfs-progs: Introduce warning and error for common use David Sterba
2 siblings, 0 replies; 5+ messages in thread
From: Zhao Lei @ 2015-09-28 13:58 UTC (permalink / raw)
To: linux-btrfs; +Cc: Zhao Lei, Qu Wenruo
Use common warning/error functions in cmds-scrub.c, it can make
message format unified and make code simple.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
---
cmds-scrub.c | 176 +++++++++++++++++++++++++++++------------------------------
1 file changed, 87 insertions(+), 89 deletions(-)
diff --git a/cmds-scrub.c b/cmds-scrub.c
index f2611a0..19eaa93 100644
--- a/cmds-scrub.c
+++ b/cmds-scrub.c
@@ -128,11 +128,6 @@ static void print_scrub_full(struct btrfs_scrub_progress *sp)
printf("\tlast_physical: %lld\n", sp->last_physical);
}
-#define ERR(test, ...) do { \
- if (test) \
- fprintf(stderr, __VA_ARGS__); \
-} while (0)
-
#define PRINT_SCRUB_ERROR(test, desc) do { \
if (test) \
printf(" %s=%llu", desc, test); \
@@ -461,7 +456,7 @@ static int scrub_kvread(int *i, int len, int avail, const char *buf,
#define _SCRUB_INVALID do { \
if (report_errors) \
- fprintf(stderr, "WARNING: invalid data in line %d pos " \
+ warning("invalid data in line %d pos " \
"%d state %d (near \"%.*s\") at %s:%d\n", \
lineno, i, state, 20 > avail ? avail : 20, \
l + i, __FILE__, __LINE__); \
@@ -848,8 +843,7 @@ static void *scrub_one_dev(void *ctx)
IOPRIO_PRIO_VALUE(sp->ioprio_class,
sp->ioprio_classdata));
if (ret)
- fprintf(stderr,
- "WARNING: setting ioprio failed: %s (ignored).\n",
+ warning("setting ioprio failed: %s (ignored).\n",
strerror(errno));
ret = ioctl(sp->fd, BTRFS_IOC_SCRUB, &sp->scrub_args);
@@ -1195,9 +1189,9 @@ static int scrub_start(int argc, char **argv, int resume)
do_print = 0;
if (mkdir_p(datafile)) {
- ERR(!do_quiet, "WARNING: cannot create scrub data "
- "file, mkdir %s failed: %s. Status recording "
- "disabled\n", datafile, strerror(errno));
+ warning_on(!do_quiet,
+ "cannot create scrub data file, mkdir %s failed: %s. Status recording disabled\n",
+ datafile, strerror(errno));
do_record = 0;
}
free(datafile);
@@ -1208,24 +1202,27 @@ static int scrub_start(int argc, char **argv, int resume)
if (fdmnt < 0) {
if (errno == EINVAL)
- ERR(!do_quiet,
- "ERROR: '%s' is not a mounted btrfs device\n",
- path);
+ error_on(!do_quiet,
+ "'%s' is not a mounted btrfs device\n",
+ path);
else
- ERR(!do_quiet, "ERROR: can't access '%s': %s\n",
- path, strerror(errno));
+ error_on(!do_quiet,
+ "can't access '%s': %s\n",
+ path, strerror(errno));
return 1;
}
ret = get_fs_info(path, &fi_args, &di_args);
if (ret) {
- ERR(!do_quiet, "ERROR: getting dev info for scrub failed: "
- "%s\n", strerror(-ret));
+ error_on(!do_quiet,
+ "getting dev info for scrub failed: %s\n",
+ strerror(-ret));
err = 1;
goto out;
}
if (!fi_args.num_devices) {
- ERR(!do_quiet, "ERROR: no devices found\n");
+ error_on(!do_quiet,
+ "no devices found\n");
err = 1;
goto out;
}
@@ -1233,13 +1230,15 @@ static int scrub_start(int argc, char **argv, int resume)
uuid_unparse(fi_args.fsid, fsid);
fdres = scrub_open_file_r(SCRUB_DATA_FILE, fsid);
if (fdres < 0 && fdres != -ENOENT) {
- ERR(!do_quiet, "WARNING: failed to open status file: "
- "%s\n", strerror(-fdres));
+ warning_on(!do_quiet,
+ "failed to open status file: %s\n",
+ strerror(-fdres));
} else if (fdres >= 0) {
past_scrubs = scrub_read_file(fdres, !do_quiet);
if (IS_ERR(past_scrubs))
- ERR(!do_quiet, "WARNING: failed to read status file: "
- "%s\n", strerror(-PTR_ERR(past_scrubs)));
+ warning_on(!do_quiet,
+ "failed to read status file: %s\n",
+ strerror(-PTR_ERR(past_scrubs)));
close(fdres);
}
@@ -1262,11 +1261,11 @@ static int scrub_start(int argc, char **argv, int resume)
* single devices, there is no reason to prevent this.
*/
if (!force && is_scrub_running_on_fs(&fi_args, di_args, past_scrubs)) {
- ERR(!do_quiet,
- "ERROR: scrub is already running.\n"
- "To cancel use 'btrfs scrub cancel %s'.\n"
- "To see the status use 'btrfs scrub status [-d] %s'.\n",
- path, path);
+ error_on(!do_quiet,
+ "scrub is already running.\n"
+ "To cancel use 'btrfs scrub cancel %s'.\n"
+ "To see the status use 'btrfs scrub status [-d] %s'.\n",
+ path, path);
err = 1;
goto out;
}
@@ -1276,7 +1275,8 @@ static int scrub_start(int argc, char **argv, int resume)
spc.progress = calloc(fi_args.num_devices * 2, sizeof(*spc.progress));
if (!t_devs || !sp || !spc.progress) {
- ERR(!do_quiet, "ERROR: scrub failed: %s", strerror(errno));
+ error_on(!do_quiet,
+ "scrub failed: %s", strerror(errno));
err = 1;
goto out;
}
@@ -1285,8 +1285,8 @@ static int scrub_start(int argc, char **argv, int resume)
devid = di_args[i].devid;
ret = pthread_mutex_init(&sp[i].progress_mutex, NULL);
if (ret) {
- ERR(!do_quiet, "ERROR: pthread_mutex_init failed: "
- "%s\n", strerror(ret));
+ error_on(!do_quiet, "pthread_mutex_init failed: %s\n",
+ strerror(ret));
err = 1;
goto out;
}
@@ -1340,7 +1340,7 @@ static int scrub_start(int argc, char **argv, int resume)
ret = connect(prg_fd, (struct sockaddr *)&addr, sizeof(addr));
if (!ret || errno != ECONNREFUSED) {
/* ... yes, so scrub must be running. error out */
- fprintf(stderr, "ERROR: scrub already running\n");
+ error("scrub already running\n");
close(prg_fd);
prg_fd = -1;
goto out;
@@ -1354,10 +1354,10 @@ static int scrub_start(int argc, char **argv, int resume)
if (ret != -1)
ret = listen(prg_fd, 100);
if (ret == -1) {
- ERR(!do_quiet, "WARNING: failed to open the progress status "
- "socket at %s: %s. Progress cannot be queried\n",
- sock_path[0] ? sock_path : SCRUB_PROGRESS_SOCKET_PATH,
- strerror(errno));
+ warning_on(!do_quiet,
+ "failed to open the progress status socket at %s: %s. Progress cannot be queried\n",
+ sock_path[0] ? sock_path :
+ SCRUB_PROGRESS_SOCKET_PATH, strerror(errno));
if (prg_fd != -1) {
close(prg_fd);
prg_fd = -1;
@@ -1371,9 +1371,9 @@ static int scrub_start(int argc, char **argv, int resume)
ret = scrub_write_progress(&spc_write_mutex, fsid, sp,
fi_args.num_devices);
if (ret) {
- ERR(!do_quiet, "WARNING: failed to write the progress "
- "status file: %s. Status recording disabled\n",
- strerror(-ret));
+ warning_on(!do_quiet,
+ "failed to write the progress status file: %s. Status recording disabled\n",
+ strerror(-ret));
do_record = 0;
}
}
@@ -1381,8 +1381,9 @@ static int scrub_start(int argc, char **argv, int resume)
if (do_background) {
pid = fork();
if (pid == -1) {
- ERR(!do_quiet, "ERROR: cannot scrub, fork failed: "
- "%s\n", strerror(errno));
+ error_on(!do_quiet,
+ "cannot scrub, fork failed: %s\n",
+ strerror(errno));
err = 1;
goto out;
}
@@ -1400,13 +1401,15 @@ static int scrub_start(int argc, char **argv, int resume)
}
ret = wait(&stat);
if (ret != pid) {
- ERR(!do_quiet, "ERROR: wait failed: (ret=%d) "
- "%s\n", ret, strerror(errno));
+ error_on(!do_quiet,
+ "wait failed: (ret=%d) %s\n",
+ ret, strerror(errno));
err = 1;
goto out;
}
if (!WIFEXITED(stat) || WEXITSTATUS(stat)) {
- ERR(!do_quiet, "ERROR: scrub process failed\n");
+ error_on(!do_quiet,
+ "scrub process failed\n");
err = WIFEXITED(stat) ? WEXITSTATUS(stat) : -1;
goto out;
}
@@ -1432,9 +1435,8 @@ static int scrub_start(int argc, char **argv, int resume)
scrub_one_dev, &sp[i]);
if (ret) {
if (do_print)
- fprintf(stderr, "ERROR: creating "
- "scrub_one_dev[%llu] thread failed: "
- "%s\n", devid, strerror(ret));
+ error("creating scrub_one_dev[%llu] thread failed: %s\n",
+ devid, strerror(ret));
err = 1;
goto out;
}
@@ -1449,8 +1451,8 @@ static int scrub_start(int argc, char **argv, int resume)
ret = pthread_create(&t_prog, NULL, scrub_progress_cycle, &spc);
if (ret) {
if (do_print)
- fprintf(stderr, "ERROR: creating progress thread "
- "failed: %s\n", strerror(ret));
+ error("creating progress thread failed: %s\n",
+ strerror(ret));
err = 1;
goto out;
}
@@ -1463,9 +1465,8 @@ static int scrub_start(int argc, char **argv, int resume)
ret = pthread_join(t_devs[i], NULL);
if (ret) {
if (do_print)
- fprintf(stderr, "ERROR: pthread_join failed "
- "for scrub_one_dev[%llu]: %s\n", devid,
- strerror(ret));
+ error("pthread_join failed for scrub_one_dev[%llu]: %s\n",
+ devid, strerror(ret));
++err;
continue;
}
@@ -1473,20 +1474,18 @@ static int scrub_start(int argc, char **argv, int resume)
switch (sp[i].ioctl_errno) {
case ENODEV:
if (do_print)
- fprintf(stderr,
- "WARNING: device %lld not present\n",
- devid);
+ warning("device %lld not present\n",
+ devid);
continue;
case ECANCELED:
++err;
break;
default:
if (do_print)
- fprintf(stderr,
- "ERROR: scrubbing %s failed for device id %lld: ret=%d, errno=%d (%s)\n",
- path, devid,
- sp[i].ret, sp[i].ioctl_errno,
- strerror(sp[i].ioctl_errno));
+ error("scrubbing %s failed for device id %lld: ret=%d, errno=%d (%s)\n",
+ path, devid,
+ sp[i].ret, sp[i].ioctl_errno,
+ strerror(sp[i].ioctl_errno));
++err;
continue;
}
@@ -1528,22 +1527,22 @@ static int scrub_start(int argc, char **argv, int resume)
/* check for errors from the handling of the progress thread */
if (do_print && ret) {
- fprintf(stderr, "ERROR: progress thread handling failed: %s\n",
- strerror(ret));
+ error("progress thread handling failed: %s\n",
+ strerror(ret));
}
/* check for errors returned from the progress thread itself */
if (do_print && terr && terr != PTHREAD_CANCELED) {
- fprintf(stderr, "ERROR: recording progress "
- "failed: %s\n", strerror(-PTR_ERR(terr)));
+ error("recording progress failed: %s\n",
+ strerror(-PTR_ERR(terr)));
}
if (do_record) {
ret = scrub_write_progress(&spc_write_mutex, fsid, sp,
fi_args.num_devices);
if (ret && do_print) {
- fprintf(stderr, "ERROR: failed to record the result: "
- "%s\n", strerror(-ret));
+ error("failed to record the result: %s\n",
+ strerror(-ret));
}
}
@@ -1567,11 +1566,12 @@ out:
if (nothing_to_resume)
return 2;
if (e_uncorrectable) {
- ERR(!do_quiet, "ERROR: There are uncorrectable errors.\n");
+ error_on(!do_quiet, "There are uncorrectable errors.\n");
return 3;
}
if (e_correctable)
- ERR(!do_quiet, "WARNING: errors detected during scrubbing, corrected.\n");
+ warning_on(!do_quiet,
+ "errors detected during scrubbing, corrected.\n");
return 0;
}
@@ -1618,12 +1618,11 @@ static int cmd_scrub_cancel(int argc, char **argv)
fdmnt = open_path_or_dev_mnt(path, &dirstream);
if (fdmnt < 0) {
if (errno == EINVAL)
- fprintf(stderr,
- "ERROR: '%s' is not a mounted btrfs device\n",
- path);
+ error("'%s' is not a mounted btrfs device\n",
+ path);
else
- fprintf(stderr, "ERROR: can't access '%s': %s\n",
- path, strerror(errno));
+ error("can't access '%s': %s\n",
+ path, strerror(errno));
ret = 1;
goto out;
}
@@ -1631,8 +1630,9 @@ static int cmd_scrub_cancel(int argc, char **argv)
ret = ioctl(fdmnt, BTRFS_IOC_SCRUB_CANCEL, NULL);
if (ret < 0) {
- fprintf(stderr, "ERROR: scrub cancel failed on %s: %s\n", path,
- errno == ENOTCONN ? "not running" : strerror(errno));
+ error("scrub cancel failed on %s: %s\n",
+ path,
+ errno == ENOTCONN ? "not running" : strerror(errno));
if (errno == ENOTCONN)
ret = 2;
else
@@ -1723,24 +1723,23 @@ static int cmd_scrub_status(int argc, char **argv)
if (fdmnt < 0) {
if (errno == EINVAL)
- fprintf(stderr,
- "ERROR: '%s' is not a mounted btrfs device\n",
- path);
+ error("'%s' is not a mounted btrfs device\n",
+ path);
else
- fprintf(stderr, "ERROR: can't access '%s': %s\n",
- path, strerror(errno));
+ error("can't access '%s': %s\n",
+ path, strerror(errno));
return 1;
}
ret = get_fs_info(path, &fi_args, &di_args);
if (ret) {
- fprintf(stderr, "ERROR: getting dev info for scrub failed: "
- "%s\n", strerror(-ret));
+ error("getting dev info for scrub failed: %s\n",
+ strerror(-ret));
err = 1;
goto out;
}
if (!fi_args.num_devices) {
- fprintf(stderr, "ERROR: no devices found\n");
+ error("no devices found\n");
err = 1;
goto out;
}
@@ -1749,9 +1748,8 @@ static int cmd_scrub_status(int argc, char **argv)
fdres = socket(AF_UNIX, SOCK_STREAM, 0);
if (fdres == -1) {
- fprintf(stderr, "ERROR: failed to create socket to "
- "receive progress information: %s\n",
- strerror(errno));
+ error("failed to create socket to receive progress information: %s\n",
+ strerror(errno));
err = 1;
goto out;
}
@@ -1764,8 +1762,8 @@ static int cmd_scrub_status(int argc, char **argv)
close(fdres);
fdres = scrub_open_file_r(SCRUB_DATA_FILE, fsid);
if (fdres < 0 && fdres != -ENOENT) {
- fprintf(stderr, "WARNING: failed to open status file: "
- "%s\n", strerror(-fdres));
+ warning("failed to open status file: %s\n",
+ strerror(-fdres));
err = 1;
goto out;
}
@@ -1774,7 +1772,7 @@ static int cmd_scrub_status(int argc, char **argv)
if (fdres >= 0) {
past_scrubs = scrub_read_file(fdres, 1);
if (IS_ERR(past_scrubs))
- fprintf(stderr, "WARNING: failed to read status: %s\n",
+ warning("failed to read status: %s\n",
strerror(-PTR_ERR(past_scrubs)));
}
in_progress = is_scrub_running_in_kernel(fdmnt, di_args, fi_args.num_devices);
--
1.8.5.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 1/2] btrfs-progs: Introduce warning and error for common use
2015-09-28 13:58 ` [PATCH v3 1/2] " Zhao Lei
@ 2015-09-30 16:20 ` David Sterba
0 siblings, 0 replies; 5+ messages in thread
From: David Sterba @ 2015-09-30 16:20 UTC (permalink / raw)
To: Zhao Lei; +Cc: linux-btrfs, Qu Wenruo
On Mon, Sep 28, 2015 at 09:58:13PM +0800, Zhao Lei wrote:
> And sometimes, we forgot add tailed '\n',
This is actually a good point and we don't need to put the trailing
newline to all the messages, similar to the btrfs_* macros used in
kernel. I'll update the patches.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 0/2] btrfs-progs: Introduce warning and error for common use
2015-09-28 13:58 [PATCH v3 0/2] btrfs-progs: Introduce warning and error for common use Zhao Lei
2015-09-28 13:58 ` [PATCH v3 1/2] " Zhao Lei
2015-09-28 13:58 ` [PATCH v3 2/2] btrfs-progs: use common warning/error for cmds-scrub.c Zhao Lei
@ 2015-09-30 16:43 ` David Sterba
2 siblings, 0 replies; 5+ messages in thread
From: David Sterba @ 2015-09-30 16:43 UTC (permalink / raw)
To: Zhao Lei; +Cc: linux-btrfs, Qu Wenruo
On Mon, Sep 28, 2015 at 09:58:12PM +0800, Zhao Lei wrote:
> This patch introduce warning() and error() as common function,
...
> Converting all source is a big work, this patch convert cmds-scrub.c
> We'll convert others these days, and new code can use these function
> directly.
>
> Zhao Lei (2):
> btrfs-progs: Introduce warning and error for common use
> btrfs-progs: use common warning/error for cmds-scrub.c
Both applied, thanks. With some changes like joining lines where
possible and shifting the messages left so they fit to ~80 chars.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-09-30 16:44 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-28 13:58 [PATCH v3 0/2] btrfs-progs: Introduce warning and error for common use Zhao Lei
2015-09-28 13:58 ` [PATCH v3 1/2] " Zhao Lei
2015-09-30 16:20 ` David Sterba
2015-09-28 13:58 ` [PATCH v3 2/2] btrfs-progs: use common warning/error for cmds-scrub.c Zhao Lei
2015-09-30 16:43 ` [PATCH v3 0/2] btrfs-progs: Introduce warning and error for common use David Sterba
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).