summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/libzfs.h14
-rw-r--r--include/libzfs_impl.h4
-rw-r--r--include/os/freebsd/zfs/sys/Makefile.am2
-rw-r--r--include/os/freebsd/zfs/sys/zfs_vfsops_os.h (renamed from include/os/freebsd/zfs/sys/zfs_vfsops.h)1
-rw-r--r--include/os/linux/zfs/sys/Makefile.am2
-rw-r--r--include/os/linux/zfs/sys/zfs_vfsops_os.h (renamed from include/os/linux/zfs/sys/zfs_vfsops.h)0
-rw-r--r--include/sys/Makefile.am1
-rw-r--r--include/sys/zfs_vfsops.h35
8 files changed, 55 insertions, 4 deletions
diff --git a/include/libzfs.h b/include/libzfs.h
index 4e6336180..6b4f518a4 100644
--- a/include/libzfs.h
+++ b/include/libzfs.h
@@ -642,7 +642,19 @@ extern int zfs_snapshot(libzfs_handle_t *, const char *, boolean_t, nvlist_t *);
extern int zfs_snapshot_nvl(libzfs_handle_t *hdl, nvlist_t *snaps,
nvlist_t *props);
extern int zfs_rollback(zfs_handle_t *, zfs_handle_t *, boolean_t);
-extern int zfs_rename(zfs_handle_t *, const char *, boolean_t, boolean_t);
+
+typedef struct renameflags {
+ /* recursive rename */
+ int recursive : 1;
+
+ /* don't unmount file systems */
+ int nounmount : 1;
+
+ /* force unmount file systems */
+ int forceunmount : 1;
+} renameflags_t;
+
+extern int zfs_rename(zfs_handle_t *, const char *, renameflags_t);
typedef struct sendflags {
/* Amount of extra information to print. */
diff --git a/include/libzfs_impl.h b/include/libzfs_impl.h
index 26e042964..dfb63285c 100644
--- a/include/libzfs_impl.h
+++ b/include/libzfs_impl.h
@@ -166,6 +166,10 @@ int zprop_expand_list(libzfs_handle_t *hdl, zprop_list_t **plp,
* changelist_gather() flag to force it to iterate on mounted datasets only
*/
#define CL_GATHER_ITER_MOUNTED 2
+/*
+ * Use this changelist_gather() flag to prevent unmounting of file systems.
+ */
+#define CL_GATHER_DONT_UNMOUNT 4
typedef struct prop_changelist prop_changelist_t;
diff --git a/include/os/freebsd/zfs/sys/Makefile.am b/include/os/freebsd/zfs/sys/Makefile.am
index a8cfa39f3..6a65a7326 100644
--- a/include/os/freebsd/zfs/sys/Makefile.am
+++ b/include/os/freebsd/zfs/sys/Makefile.am
@@ -6,7 +6,7 @@ KERNEL_H = \
zfs_ctldir.h \
zfs_dir.h \
zfs_ioctl_compat.h \
- zfs_vfsops.h \
+ zfs_vfsops_os.h \
zfs_vnops.h \
zfs_znode_impl.h \
zpl.h
diff --git a/include/os/freebsd/zfs/sys/zfs_vfsops.h b/include/os/freebsd/zfs/sys/zfs_vfsops_os.h
index 70ada204a..1b80ee7cb 100644
--- a/include/os/freebsd/zfs/sys/zfs_vfsops.h
+++ b/include/os/freebsd/zfs/sys/zfs_vfsops_os.h
@@ -168,7 +168,6 @@ extern boolean_t zfs_is_readonly(zfsvfs_t *zfsvfs);
extern int zfs_get_temporary_prop(struct dsl_dataset *ds, zfs_prop_t zfs_prop,
uint64_t *val, char *setpoint);
extern int zfs_busy(void);
-extern void zfsvfs_update_fromname(const char *oldname, const char *newname);
#ifdef __cplusplus
}
diff --git a/include/os/linux/zfs/sys/Makefile.am b/include/os/linux/zfs/sys/Makefile.am
index 732d94ee8..b56e6771d 100644
--- a/include/os/linux/zfs/sys/Makefile.am
+++ b/include/os/linux/zfs/sys/Makefile.am
@@ -19,7 +19,7 @@ KERNEL_H = \
zfs_context_os.h \
zfs_ctldir.h \
zfs_dir.h \
- zfs_vfsops.h \
+ zfs_vfsops_os.h \
zfs_vnops.h \
zfs_znode_impl.h \
zpl.h
diff --git a/include/os/linux/zfs/sys/zfs_vfsops.h b/include/os/linux/zfs/sys/zfs_vfsops_os.h
index 24a0a2e6a..24a0a2e6a 100644
--- a/include/os/linux/zfs/sys/zfs_vfsops.h
+++ b/include/os/linux/zfs/sys/zfs_vfsops_os.h
diff --git a/include/sys/Makefile.am b/include/sys/Makefile.am
index c2bc3be03..75727b93a 100644
--- a/include/sys/Makefile.am
+++ b/include/sys/Makefile.am
@@ -115,6 +115,7 @@ COMMON_H = \
zfs_sa.h \
zfs_stat.h \
zfs_sysfs.h \
+ zfs_vfsops.h \
zfs_znode.h \
zil.h \
zil_impl.h \
diff --git a/include/sys/zfs_vfsops.h b/include/sys/zfs_vfsops.h
new file mode 100644
index 000000000..a438c86f0
--- /dev/null
+++ b/include/sys/zfs_vfsops.h
@@ -0,0 +1,35 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Portions Copyright 2020 iXsystems, Inc.
+ */
+
+#ifndef _SYS_ZFS_VFSOPS_H
+#define _SYS_ZFS_VFSOPS_H
+
+#ifdef _KERNEL
+#include <sys/zfs_vfsops_os.h>
+#endif
+
+extern void zfsvfs_update_fromname(const char *, const char *);
+
+#endif /* _SYS_ZFS_VFSOPS_H */