diff options
author | Garrett D'Amore <[email protected]> | 2011-11-11 14:07:54 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2012-07-11 13:08:56 -0700 |
commit | 3541dc6d02592bd0939ea2d35b50c2bbdcc4cd0e (patch) | |
tree | 86b892fa28fa8851e7439cca3ffb2238532b81a0 /lib | |
parent | ba9b5428fd1d7bab68138a1442cd918d0f90200c (diff) |
Illumos #1748: desire support for reguid in zfs
Reviewed by: George Wilson <[email protected]>
Reviewed by: Igor Kozhukhov <[email protected]>
Reviewed by: Alexander Eremin <[email protected]>
Reviewed by: Alexander Stetsenko <[email protected]>
Approved by: Richard Lowe <[email protected]>
References:
https://www.illumos.org/issues/1748
This commit modifies the user to kernel space ioctl ABI. Extra
care should be taken when updating to ensure both the kernel
modules and utilities are updated. If only the user space
component is updated both the 'zpool events' command and the
'zpool reguid' command will not work until the kernel modules
are updated.
Ported by: Martin Matuska <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #665
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libspl/include/sys/sysevent/eventdefs.h | 1 | ||||
-rw-r--r-- | lib/libzfs/libzfs_pool.c | 22 |
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/libspl/include/sys/sysevent/eventdefs.h b/lib/libspl/include/sys/sysevent/eventdefs.h index c4494f778..50ab0ca4d 100644 --- a/lib/libspl/include/sys/sysevent/eventdefs.h +++ b/lib/libspl/include/sys/sysevent/eventdefs.h @@ -21,6 +21,7 @@ /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ #ifndef _SYS_SYSEVENT_EVENTDEFS_H diff --git a/lib/libzfs/libzfs_pool.c b/lib/libzfs/libzfs_pool.c index 7b78f25f0..bb184ed68 100644 --- a/lib/libzfs/libzfs_pool.c +++ b/lib/libzfs/libzfs_pool.c @@ -21,6 +21,8 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + * Copyright (c) 2011 by Delphix. All rights reserved. */ #include <ctype.h> @@ -2949,6 +2951,26 @@ zpool_vdev_clear(zpool_handle_t *zhp, uint64_t guid) } /* + * Change the GUID for a pool. + */ +int +zpool_reguid(zpool_handle_t *zhp) +{ + char msg[1024]; + libzfs_handle_t *hdl = zhp->zpool_hdl; + zfs_cmd_t zc = { "\0", "\0", "\0", "\0", 0 }; + + (void) snprintf(msg, sizeof (msg), + dgettext(TEXT_DOMAIN, "cannot reguid '%s'"), zhp->zpool_name); + + (void) strlcpy(zc.zc_name, zhp->zpool_name, sizeof (zc.zc_name)); + if (zfs_ioctl(hdl, ZFS_IOC_POOL_REGUID, &zc) == 0) + return (0); + + return (zpool_standard_error(hdl, errno, msg)); +} + +/* * Convert from a devid string to a path. */ static char * |