summaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorRichard Yao <[email protected]>2013-07-01 10:57:04 -0400
committerBrian Behlendorf <[email protected]>2014-03-20 12:05:30 -0700
commit26b42f3f9d03f85cc7966dc2fe4dfe9216601b0e (patch)
treef0f0eab8b0d8b53c5fd8609451c6f6345a5bcd7d /cmd
parent8959b29e31975a281acc411e9f60203f09716e79 (diff)
Implement -t option to zpool import for temporary pool names
Originally, users had to handle spa namespace collisions by either exporting the already imported pool or by specifying a new name for the pool with a conflicting name. In the case of root pools from virtual guests, neither approach to collision resolution is reasonable. This is addressed by extending the new name syntax with a -t option to specify that the new name is temporary. When specified, this sets an internal flag that is passed into the kernel to tell it that all label updates should refer to the name used in the original label. Consequently, the original pool name will be retained on export. Signed-off-by: Richard Yao <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #2189
Diffstat (limited to 'cmd')
-rw-r--r--cmd/zpool/zpool_main.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/cmd/zpool/zpool_main.c b/cmd/zpool/zpool_main.c
index 1c606e077..d095b15a5 100644
--- a/cmd/zpool/zpool_main.c
+++ b/cmd/zpool/zpool_main.c
@@ -2013,7 +2013,7 @@ zpool_do_import(int argc, char **argv)
char *endptr;
/* check options */
- while ((c = getopt(argc, argv, ":aCc:d:DEfFmnNo:R:T:VX")) != -1) {
+ while ((c = getopt(argc, argv, ":aCc:d:DEfFmnNo:R:tT:VX")) != -1) {
switch (c) {
case 'a':
do_all = B_TRUE;
@@ -2075,6 +2075,10 @@ zpool_do_import(int argc, char **argv)
ZPOOL_PROP_CACHEFILE), "none", &props, B_TRUE))
goto error;
break;
+ case 't':
+ flags |= ZFS_IMPORT_TEMP_NAME;
+ break;
+
case 'T':
errno = 0;
txg = strtoull(optarg, &endptr, 10);