Introduce zpool_get_prop_literal interface
[zfs.git] / lib / libzfs / libzfs_changelist.c
index 0bcfc04..3a83e2d 100644 (file)
@@ -291,22 +291,30 @@ changelist_rename(prop_changelist_t *clp, const char *src, const char *dst)
 
        for (cn = uu_list_first(clp->cl_list); cn != NULL;
            cn = uu_list_next(clp->cl_list, cn)) {
+               zfs_handle_t *hdl;
+
+               hdl = cn->cn_handle;
+
                /*
                 * Do not rename a clone that's not in the source hierarchy.
                 */
-               if (!isa_child_of(cn->cn_handle->zfs_name, src))
+               if (!isa_child_of(hdl->zfs_name, src))
                        continue;
 
                /*
                 * Destroy the previous mountpoint if needed.
                 */
-               remove_mountpoint(cn->cn_handle);
+               remove_mountpoint(hdl);
 
                (void) strlcpy(newname, dst, sizeof (newname));
-               (void) strcat(newname, cn->cn_handle->zfs_name + strlen(src));
+               (void) strcat(newname, hdl->zfs_name + strlen(src));
+
+               if (ZFS_IS_VOLUME(hdl)) {
+                       (void) zvol_remove_link(hdl->zfs_hdl, hdl->zfs_name);
+                       (void) zvol_create_link(hdl->zfs_hdl, newname);
+               }
 
-               (void) strlcpy(cn->cn_handle->zfs_name, newname,
-                   sizeof (cn->cn_handle->zfs_name));
+               (void) strlcpy(hdl->zfs_name, newname, sizeof (hdl->zfs_name));
        }
 }