Skip to content

Commit 9958306

Browse files
committed
issue #14223: fix generation of linux kernel uevent for snapshot rename
`zvol_rename_minors()` needs to be given the full path not just the snapshot name. Use code removed in a0bd735 as a guide to providing the necessary values. Closes #14223 Signed-off-by: James Dingwall <[email protected]>
1 parent 17a2b35 commit 9958306

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

module/zfs/dsl_dataset.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2987,6 +2987,7 @@ dsl_dataset_rename_snapshot_sync_impl(dsl_pool_t *dp,
29872987
dsl_dataset_t *ds;
29882988
uint64_t val;
29892989
dmu_tx_t *tx = ddrsa->ddrsa_tx;
2990+
char *oldname, *newname;
29902991
int error;
29912992

29922993
error = dsl_dataset_snap_lookup(hds, ddrsa->ddrsa_oldsnapname, &val);
@@ -3011,8 +3012,14 @@ dsl_dataset_rename_snapshot_sync_impl(dsl_pool_t *dp,
30113012
VERIFY0(zap_add(dp->dp_meta_objset,
30123013
dsl_dataset_phys(hds)->ds_snapnames_zapobj,
30133014
ds->ds_snapname, 8, 1, &ds->ds_object, tx));
3014-
zvol_rename_minors(dp->dp_spa, ddrsa->ddrsa_oldsnapname,
3015-
ddrsa->ddrsa_newsnapname, B_TRUE);
3015+
3016+
oldname = kmem_asprintf("%s@%s", ddrsa->ddrsa_fsname,
3017+
ddrsa->ddrsa_oldsnapname);
3018+
newname = kmem_asprintf("%s@%s", ddrsa->ddrsa_fsname,
3019+
ddrsa->ddrsa_newsnapname);
3020+
zvol_rename_minors(dp->dp_spa, oldname, newname, B_TRUE);
3021+
kmem_strfree(oldname);
3022+
kmem_strfree(newname);
30163023

30173024
dsl_dataset_rele(ds, FTAG);
30183025
return (0);

0 commit comments

Comments
 (0)