Date: Fri, 14 Apr 2017 17:01:01 +0000 (UTC) From: Andriy Gapon <avg@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r316864 - in vendor/illumos/dist: cmd/zdb man/man1m Message-ID: <201704141701.v3EH11qq031914@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: avg Date: Fri Apr 14 17:01:00 2017 New Revision: 316864 URL: https://svnweb.freebsd.org/changeset/base/316864 Log: 6392 zdb: introduce -V for verbatim import illumos/illumos-gate@dfd5965f7e43b6a630e5ac86708ae76b4f02cc40 https://github.com/illumos/illumos-gate/commit/dfd5965f7e43b6a630e5ac86708ae76b4f02cc40 https://www.illumos.org/issues/6392 When given a pool name via -e, zdb would attempt an import. If it failed, then it would attempt a verbatim import. This behavior is not always desirable so a -V switch is added to zdb to control the behavior. When specified, a verbatim import is done. Otherwise, the behavior is as it was previously, except no verbatim import is done on failure. https://github.com/zfsonlinux/zfs/commit/a5778ea2427bd340e3b4f697d9b6e1452bd71909 Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Yuri Pankov <yuri.pankov@gmail.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Matt Ahrens <mahrens@delphix.com> Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Approved by: Dan McDonald <danmcd@omniti.com> Author: Richard Yao <ryao@gentoo.org> Modified: vendor/illumos/dist/cmd/zdb/zdb.c vendor/illumos/dist/man/man1m/zdb.1m Modified: vendor/illumos/dist/cmd/zdb/zdb.c ============================================================================== --- vendor/illumos/dist/cmd/zdb/zdb.c Fri Apr 14 16:59:53 2017 (r316863) +++ vendor/illumos/dist/cmd/zdb/zdb.c Fri Apr 14 17:01:00 2017 (r316864) @@ -120,20 +120,21 @@ static void usage(void) { (void) fprintf(stderr, - "Usage:\t%s [-AbcdDFGhiLMPsvX] [-e [-p <path> ...]] " + "Usage:\t%s [-AbcdDFGhiLMPsvX] [-e [-V] [-p <path> ...]] " "[-I <inflight I/Os>]\n" "\t\t[-o <var>=<value>]... [-t <txg>] [-U <cache>] [-x <dumpdir>]\n" "\t\t[<poolname> [<object> ...]]\n" - "\t%s [-AdiPv] [-e [-p <path> ...]] [-U <cache>] <dataset> " + "\t%s [-AdiPv] [-e [-V] [-p <path> ...]] [-U <cache>] <dataset> " "[<object> ...]\n" "\t%s -C [-A] [-U <cache>]\n" "\t%s -l [-Aqu] <device>\n" - "\t%s -m [-AFLPX] [-e [-p <path> ...]] [-t <txg>] [-U <cache>]\n" - "\t\t<poolname> [<vdev> [<metaslab> ...]]\n" + "\t%s -m [-AFLPX] [-e [-V] [-p <path> ...]] [-t <txg>] " + "[-U <cache>]\n\t\t<poolname> [<vdev> [<metaslab> ...]]\n" "\t%s -O <dataset> <path>\n" - "\t%s -R [-A] [-e [-p <path> ...]] [-U <cache>]\n" + "\t%s -R [-A] [-e [-V] [-p <path> ...]] [-U <cache>]\n" "\t\t<poolname> <vdev>:<offset>:<size>[:<flags>]\n" - "\t%s -S [-AP] [-e [-p <path> ...]] [-U <cache>] <poolname>\n\n", + "\t%s -S [-AP] [-e [-V] [-p <path> ...]] [-U <cache>] " + "<poolname>\n\n", cmdname, cmdname, cmdname, cmdname, cmdname, cmdname, cmdname, cmdname); @@ -188,6 +189,7 @@ usage(void) (void) fprintf(stderr, " -u uberblock\n"); (void) fprintf(stderr, " -U <cachefile_path> -- use alternate " "cachefile\n"); + (void) fprintf(stderr, " -V do verbatim import\n"); (void) fprintf(stderr, " -x <dumpdir> -- " "dump all read blocks into specified directory\n"); (void) fprintf(stderr, " -X attempt extreme rewind (does not " @@ -3707,6 +3709,7 @@ main(int argc, char **argv) char *target; nvlist_t *policy = NULL; uint64_t max_txg = UINT64_MAX; + int flags = ZFS_IMPORT_MISSING_LOG; int rewind = ZPOOL_NEVER_REWIND; char *spa_config_path_env; boolean_t target_is_spa = B_TRUE; @@ -3726,7 +3729,7 @@ main(int argc, char **argv) spa_config_path = spa_config_path_env; while ((c = getopt(argc, argv, - "AbcCdDeFGhiI:lLmMo:Op:PqRsSt:uU:vx:X")) != -1) { + "AbcCdDeFGhiI:lLmMo:Op:PqRsSt:uU:vVx:X")) != -1) { switch (c) { case 'b': case 'c': @@ -3800,6 +3803,9 @@ main(int argc, char **argv) case 'v': verbose++; break; + case 'V': + flags = ZFS_IMPORT_VERBATIM; + break; case 'x': vn_dumpdir = optarg; break; @@ -3899,11 +3905,7 @@ main(int argc, char **argv) fatal("can't open '%s': %s", target, strerror(ENOMEM)); } - if ((error = spa_import(name, cfg, NULL, - ZFS_IMPORT_MISSING_LOG)) != 0) { - error = spa_import(name, cfg, NULL, - ZFS_IMPORT_VERBATIM); - } + error = spa_import(name, cfg, NULL, flags); } } Modified: vendor/illumos/dist/man/man1m/zdb.1m ============================================================================== --- vendor/illumos/dist/man/man1m/zdb.1m Fri Apr 14 16:59:53 2017 (r316863) +++ vendor/illumos/dist/man/man1m/zdb.1m Fri Apr 14 17:01:00 2017 (r316864) @@ -22,7 +22,7 @@ .Sh SYNOPSIS .Nm .Op Fl AbcdDFGhiLMPsvX -.Op Fl e Op Fl p Ar path ... +.Op Fl e Oo Fl V Oc Op Fl p Ar path ... .Op Fl I Ar inflight I/Os .Oo Fl o Ar var Ns = Ns Ar value Oc Ns ... .Op Fl t Ar txg @@ -31,7 +31,7 @@ .Op Ar poolname Op Ar object ... .Nm .Op Fl AdiPv -.Op Fl e Op Fl p Ar path ... +.Op Fl e Oo Fl V Oc Op Fl p Ar path ... .Op Fl U Ar cache .Ar dataset Op Ar object ... .Nm @@ -45,8 +45,8 @@ .Nm .Fl m .Op Fl AFLPX +.Op Fl e Oo Fl V Oc Op Fl p Ar path ... .Op Fl t Ar txg -.Op Fl e Op Fl p Ar path ... .Op Fl U Ar cache .Ar poolname Op Ar vdev Op Ar metaslab ... .Nm @@ -55,13 +55,13 @@ .Nm .Fl R .Op Fl A -.Op Fl e Op Fl p Ar path ... +.Op Fl e Oo Fl V Oc Op Fl p Ar path ... .Op Fl U Ar cache .Ar poolname vdev Ns : Ns Ar offset Ns : Ns Ar size Ns Op : Ns Ar flags .Nm .Fl S .Op Fl AP -.Op Fl e Op Fl p Ar path ... +.Op Fl e Oo Fl V Oc Op Fl p Ar path ... .Op Fl U Ar cache .Ar poolname .Sh DESCRIPTION @@ -316,6 +316,11 @@ Use a cache file other than .It Fl v Enable verbosity. Specify multiple times for increased verbosity. +.It Fl V +Attempt verbatim import. +This mimics the behavior of the kernel when loading a pool from a cachefile. +Only usable with +.Fl e . .It Fl X Attempt .Qq extreme
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201704141701.v3EH11qq031914>