#include "libxfs.h"
#include "xfs_metadump.h"
-static bool show_progress = false;
-static bool show_info = false;
-static bool progress_since_warning = false;
+static struct mdrestore {
+ bool show_progress;
+ bool show_info;
+ bool progress_since_warning;
+} mdrestore;
static void
fatal(const char *msg, ...)
printf("\r%-59s", buf);
fflush(stdout);
- progress_since_warning = true;
+ mdrestore.progress_since_warning = true;
}
/*
bytes_read = 0;
for (;;) {
- if (show_progress && (bytes_read & ((1 << 20) - 1)) == 0)
+ if (mdrestore.show_progress &&
+ (bytes_read & ((1 << 20) - 1)) == 0)
print_progress("%lld MB read", bytes_read >> 20);
for (cur_index = 0; cur_index < mb_count; cur_index++) {
bytes_read += block_size + (mb_count << mbp->mb_blocklog);
}
- if (progress_since_warning)
+ if (mdrestore.progress_since_warning)
putchar('\n');
memset(block_buffer, 0, sb.sb_sectsize);
int is_target_file;
struct xfs_metablock mb;
+ mdrestore.show_progress = false;
+ mdrestore.show_info = false;
+ mdrestore.progress_since_warning = false;
+
progname = basename(argv[0]);
while ((c = getopt(argc, argv, "giV")) != EOF) {
switch (c) {
case 'g':
- show_progress = true;
+ mdrestore.show_progress = true;
break;
case 'i':
- show_info = true;
+ mdrestore.show_info = true;
break;
case 'V':
printf("%s version %s\n", progname, VERSION);
usage();
/* show_info without a target is ok */
- if (!show_info && argc - optind != 2)
+ if (!mdrestore.show_info && argc - optind != 2)
usage();
/*
if (mb.mb_magic != cpu_to_be32(XFS_MD_MAGIC_V1))
fatal("specified file is not a metadata dump\n");
- if (show_info) {
+ if (mdrestore.show_info) {
if (mb.mb_info & XFS_METADUMP_INFO_FLAGS) {
printf("%s: %sobfuscated, %s log, %s metadata blocks\n",
argv[optind],