mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
Add port of FreeBSD 'volmode' property
The volmode property may be set to control the visibility of ZVOL block devices. This allow switching ZVOL between three modes: full - existing fully functional behaviour (default) dev - hide partitions on ZVOL block devices none - not exposing volumes outside ZFS Additionally the new zvol_volmode module parameter can be used to control the default behaviour. This functionality can be used, for instance, on "backup" pools to avoid cluttering /dev with unneeded zd* devices. Original-patch-by: mav <mav@FreeBSD.org> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Ported-by: loli10K <ezomori.nozomu@gmail.com> Signed-off-by: loli10K <ezomori.nozomu@gmail.com> FreeBSD-commit: https://github.com/freebsd/freebsd/commit/dd28e6bb Closes #1796 Closes #3438 Closes #6233
This commit is contained in:
@@ -154,6 +154,7 @@ typedef enum {
|
||||
ZFS_PROP_LOGICALUSED,
|
||||
ZFS_PROP_LOGICALREFERENCED,
|
||||
ZFS_PROP_INCONSISTENT, /* not exposed to the user */
|
||||
ZFS_PROP_VOLMODE,
|
||||
ZFS_PROP_FILESYSTEM_LIMIT,
|
||||
ZFS_PROP_SNAPSHOT_LIMIT,
|
||||
ZFS_PROP_FILESYSTEM_COUNT,
|
||||
@@ -394,6 +395,13 @@ typedef enum {
|
||||
ZFS_REDUNDANT_METADATA_MOST
|
||||
} zfs_redundant_metadata_type_t;
|
||||
|
||||
typedef enum {
|
||||
ZFS_VOLMODE_DEFAULT = 0,
|
||||
ZFS_VOLMODE_GEOM = 1,
|
||||
ZFS_VOLMODE_DEV = 2,
|
||||
ZFS_VOLMODE_NONE = 3
|
||||
} zfs_volmode_t;
|
||||
|
||||
/*
|
||||
* On-disk version number.
|
||||
*/
|
||||
|
||||
@@ -51,6 +51,7 @@ extern void zvol_create_cb(objset_t *os, void *arg, cred_t *cr, dmu_tx_t *tx);
|
||||
extern int zvol_set_volsize(const char *, uint64_t);
|
||||
extern int zvol_set_volblocksize(const char *, uint64_t);
|
||||
extern int zvol_set_snapdev(const char *, zprop_source_t, uint64_t);
|
||||
extern int zvol_set_volmode(const char *, zprop_source_t, uint64_t);
|
||||
extern zvol_state_t *zvol_suspend(const char *);
|
||||
extern int zvol_resume(zvol_state_t *);
|
||||
extern void *zvol_tag(zvol_state_t *);
|
||||
|
||||
Reference in New Issue
Block a user