mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Add 'zfs rename -u' to rename without remounting
Allow to rename file systems without remounting if it is possible. It is possible for file systems with 'mountpoint' property set to 'legacy' or 'none' - we don't have to change mount directory for them. Currently such file systems are unmounted on rename and not even mounted back. This introduces layering violation, as we need to update 'f_mntfromname' field in statfs structure related to mountpoint (for the dataset we are renaming and all its children). In my opinion it is worth it, as it allow to update FreeBSD in even cleaner way - in ZFS-only configuration root file system is ZFS file system with 'mountpoint' property set to 'legacy'. If root dataset is named system/rootfs, we can snapshot it (system/rootfs@upgrade), clone it (system/oldrootfs), update FreeBSD and if it doesn't boot we can boot back from system/oldrootfs and rename it back to system/rootfs while it is mounted as /. Before it was not possible, because unmounting / was not possible. Authored by: Pawel Jakub Dawidek <pjd@FreeBSD.org> Reviewed-by: Allan Jude <allan@klarasystems.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Ported by: Matt Macy <mmacy@freebsd.org> Signed-off-by: Ryan Moeller <ryan@iXsystems.com> Closes #10839
This commit is contained in:
committed by
Brian Behlendorf
parent
6512c18fe1
commit
76a157f004
+31
-3
@@ -44,9 +44,16 @@
|
||||
.Ar filesystem Ns | Ns Ar volume Ns | Ns Ar snapshot
|
||||
.Nm
|
||||
.Cm rename
|
||||
.Op Fl fp
|
||||
.Fl p
|
||||
.Op Fl f
|
||||
.Ar filesystem Ns | Ns Ar volume
|
||||
.Ar filesystem Ns | Ns Ar volume
|
||||
.Nm
|
||||
.Cm rename
|
||||
.Fl u
|
||||
.Op Fl f
|
||||
.Ar filesystem
|
||||
.Ar filesystem
|
||||
.Sh DESCRIPTION
|
||||
.Bl -tag -width ""
|
||||
.It Xo
|
||||
@@ -59,10 +66,19 @@
|
||||
.It Xo
|
||||
.Nm
|
||||
.Cm rename
|
||||
.Op Fl fp
|
||||
.Fl p
|
||||
.Op Fl f
|
||||
.Ar filesystem Ns | Ns Ar volume
|
||||
.Ar filesystem Ns | Ns Ar volume
|
||||
.Xc
|
||||
.It Xo
|
||||
.Nm
|
||||
.Cm rename
|
||||
.Fl u
|
||||
.Op Fl f
|
||||
.Ar filesystem
|
||||
.Ar filesystem
|
||||
.Xc
|
||||
Renames the given dataset.
|
||||
The new target can be located anywhere in the ZFS hierarchy, with the exception
|
||||
of snapshots.
|
||||
@@ -73,12 +89,24 @@ Renamed file systems can inherit new mount points, in which case they are
|
||||
unmounted and remounted at the new mount point.
|
||||
.Bl -tag -width "-a"
|
||||
.It Fl f
|
||||
Force unmount any filesystems that need to be unmounted in the process.
|
||||
Force unmount any file systems that need to be unmounted in the process.
|
||||
This flag has no effect if used together with the
|
||||
.Fl u
|
||||
flag.
|
||||
.It Fl p
|
||||
Creates all the nonexistent parent datasets.
|
||||
Datasets created in this manner are automatically mounted according to the
|
||||
.Sy mountpoint
|
||||
property inherited from their parent.
|
||||
.It Fl u
|
||||
Do not remount file systems during rename.
|
||||
If a file system's
|
||||
.Sy mountpoint
|
||||
property is set to
|
||||
.Sy legacy
|
||||
or
|
||||
.Sy none ,
|
||||
the file system is not unmounted even if this option is not given.
|
||||
.El
|
||||
.It Xo
|
||||
.Nm
|
||||
|
||||
Reference in New Issue
Block a user