git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Introduce zpool_get_prop_literal interface
[zfs.git]
/
lib
/
libzfs
/
libzfs_changelist.c
diff --git
a/lib/libzfs/libzfs_changelist.c
b/lib/libzfs/libzfs_changelist.c
index
0bcfc04
..
3a83e2d
100644
(file)
--- a/
lib/libzfs/libzfs_changelist.c
+++ b/
lib/libzfs/libzfs_changelist.c
@@
-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)) {
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.
*/
/*
* 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.
*/
continue;
/*
* Destroy the previous mountpoint if needed.
*/
- remove_mountpoint(
cn->cn_handle
);
+ remove_mountpoint(
hdl
);
(void) strlcpy(newname, dst, sizeof (newname));
(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));
}
}
}
}