hey all,
so recently i wrote some zones code to manage zones on zfs datasets.
the code i wrote did things like rename snapshots and promote
filesystems. while doing this work, i found a few zfs behaviours that,
if changed, could greatly simplify my work.
the primary issue i hit was that when renaming a snapshot, any clones
derived from those snapshot are unmounted/remounted. promoting a
dataset (which results in snapshots being moved from one dataset to
another) doesn''t result in any clones being unmounted/remounted. this
made me wonder if the mount cycle caused by renames is actually
necessary or is it just an artifact of the current implementation?
removing this unmount/remount would greatly simplify my dataset
management code. (the snapshot rename can also fail if any clones are
zoned or in use, so eliminating these mount operations would remove one
potential failure mode for zone administration operations.)
this problem was compounded by the fact that all the clone filesystems i
was dealing with were "zoned". the code i wrote runs in the global
zone
and zfs prevents the global zone from mounting or unmounting "zoned"
filesystems. (so my code additionally had to manipulate the "zoned"
attribute for cloned datasets.) hence, if there''s no way to eliminate
the need to unmount/remount filesystems when renaming snapshots, how
would people feel about adding a option to zfs/libzfs to be able to
override the restrictions imposed by the "zoned" attribute?
ed