diff options
author | M G Berberich <btrfs@oss.m-berberich.de> | 2016-05-12 21:49:25 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-06-01 14:56:56 +0200 |
commit | 09c052a8b4dcaa96fe5e6c28b12ce24729e827a4 (patch) | |
tree | de65f65e2b7da539b14699f2a75de20ab4db019b | |
parent | 2e8b5209c8f4efebfb51cf0165ced9e967394765 (diff) |
btrfs-progs: send: add quiet option
Add new options -q,--quiet to prevent printing messages on stderr, added
--verbose as alternative for -v. Moved 'Mode NO_FILE_DATA enabled'
message to stderr. The default verboisty level is 1 to keep some
backward compatibility.
Signed-off-by: M G Berberich <btrfs@oss.m-berberich.de>
[ minor adjustments in the options, help text and changelog, added
manual page text ]
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | Documentation/btrfs-send.asciidoc | 8 | ||||
-rw-r--r-- | cmds-send.c | 30 |
2 files changed, 26 insertions, 12 deletions
diff --git a/Documentation/btrfs-send.asciidoc b/Documentation/btrfs-send.asciidoc index 1d547881..47b0b047 100644 --- a/Documentation/btrfs-send.asciidoc +++ b/Documentation/btrfs-send.asciidoc @@ -37,9 +37,6 @@ are exactly in the same state on both sides, the sender and the receiver. `Options` --v:: -enable verbose output, print generated commands in a readable form, (each -occurrence of this option increases the verbosity level) -e:: if sending multiple subvolumes at once, use the new format and omit the 'end cmd' marker in the stream separating the subvolumes @@ -56,6 +53,11 @@ send in 'NO_FILE_DATA' mode The output stream does not contain any file data and thus cannot be used to transfer changes. This mode is faster and useful to show the differences in metadata. +-v|--verbose:: +enable verbose output, print generated commands in a readable form, (each +occurrence of this option increases the verbosity level) +-q|--quiet:: +suppress all messagese except errors EXIT STATUS ----------- diff --git a/cmds-send.c b/cmds-send.c index 07070ad8..74d01287 100644 --- a/cmds-send.c +++ b/cmds-send.c @@ -44,7 +44,11 @@ #include "send.h" #include "send-utils.h" -static int g_verbose = 0; +/* + * Default is 1 for historical reasons, changing may break scripts that expect + * the 'At subvol' message. + */ +static int g_verbose = 1; struct btrfs_send { int send_fd; @@ -301,10 +305,10 @@ static int do_send(struct btrfs_send *send, u64 parent_root_id, "Try upgrading your kernel or don't use -e.\n"); goto out; } - if (g_verbose > 0) + if (g_verbose > 1) fprintf(stderr, "BTRFS_IOC_SEND returned %d\n", ret); - if (g_verbose > 0) + if (g_verbose > 1) fprintf(stderr, "joining genl thread\n"); close(pipefd[1]); @@ -429,9 +433,11 @@ int cmd_send(int argc, char **argv) while (1) { enum { GETOPT_VAL_SEND_NO_DATA = 256 }; static const struct option long_options[] = { + { "verbose", no_argument, NULL, 'v' }, + { "quiet", no_argument, NULL, 'q' }, { "no-data", no_argument, NULL, GETOPT_VAL_SEND_NO_DATA } }; - int c = getopt_long(argc, argv, "vec:f:i:p:", long_options, NULL); + int c = getopt_long(argc, argv, "vqec:f:i:p:", long_options, NULL); if (c < 0) break; @@ -440,6 +446,9 @@ int cmd_send(int argc, char **argv) case 'v': g_verbose++; break; + case 'q': + g_verbose = 0; + break; case 'e': new_end_cmd_semantic = 1; break; @@ -622,8 +631,9 @@ int cmd_send(int argc, char **argv) } } - if (send_flags & BTRFS_SEND_FLAG_NO_FILE_DATA) - printf("Mode NO_FILE_DATA enabled\n"); + if ((send_flags & BTRFS_SEND_FLAG_NO_FILE_DATA) && g_verbose > 1) + if (g_verbose > 1) + fprintf(stderr, "Mode NO_FILE_DATA enabled\n"); for (i = optind; i < argc; i++) { int is_first_subvol; @@ -632,7 +642,8 @@ int cmd_send(int argc, char **argv) free(subvol); subvol = argv[i]; - fprintf(stderr, "At subvol %s\n", subvol); + if (g_verbose > 0) + fprintf(stderr, "At subvol %s\n", subvol); subvol = realpath(subvol, NULL); if (!subvol) { @@ -713,8 +724,6 @@ const char * const cmd_send_usage[] = { "which case 'btrfs send' will determine a suitable parent among the", "clone sources itself.", "\n", - "-v Enable verbose debug output. Each occurrence of", - " this option increases the verbose level more.", "-e If sending multiple subvols at once, use the new", " format and omit the end-cmd between the subvols.", "-p <parent> Send an incremental stream from <parent> to", @@ -728,5 +737,8 @@ const char * const cmd_send_usage[] = { " does not contain any file data and thus cannot be used", " to transfer changes. This mode is faster and useful to", " show the differences in metadata.", + "-v|--verbose enable verbose output to stderr, each occurrence of", + " this option increases verbosity", + "-q|--quiet suppress all messages, except errors", NULL }; |