mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 02:44:41 +03:00
zdb: Introduce -V for verbatim import
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. Signed-off-by: Richard Yao <ryao@gentoo.org> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #2372
This commit is contained in:
committed by
Brian Behlendorf
parent
2fbc542ebd
commit
a5778ea242
+7
-6
@@ -3227,8 +3227,10 @@ 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;
|
||||
const char *opts = "bcdhilmM:suCDRSAFLVXevp:t:U:P";
|
||||
|
||||
(void) setrlimit(RLIMIT_NOFILE, &rl);
|
||||
(void) enable_extended_FILE_stdio(-1, -1);
|
||||
@@ -3244,7 +3246,7 @@ main(int argc, char **argv)
|
||||
if (spa_config_path_env != NULL)
|
||||
spa_config_path = spa_config_path_env;
|
||||
|
||||
while ((c = getopt(argc, argv, "bcdhilmM:suCDRSAFLXevp:t:U:P")) != -1) {
|
||||
while ((c = getopt(argc, argv, opts)) != -1) {
|
||||
switch (c) {
|
||||
case 'b':
|
||||
case 'c':
|
||||
@@ -3270,6 +3272,9 @@ main(int argc, char **argv)
|
||||
case 'P':
|
||||
dump_opt[c]++;
|
||||
break;
|
||||
case 'V':
|
||||
flags = ZFS_IMPORT_VERBATIM;
|
||||
break;
|
||||
case 'v':
|
||||
verbose++;
|
||||
break;
|
||||
@@ -3381,11 +3386,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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user