mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-06-25 02:28:01 +03:00
ZVOL: Make zvol_inhibit_dev module parameter platform-independent
The module parameter now is represented in FreeBSD sysctls list with name: 'vfs.zfs.vol.inhibit_dev'. The default value is '0', same as on Linux side. Sponsored-by: vStack, Inc. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Rob Norris <rob.norris@klarasystems.com> Signed-off-by: Fedor Uporov <fuporov.vstack@gmail.com> Closes #17384
This commit is contained in:
parent
fa697b94e6
commit
3dfa98d013
@ -63,6 +63,7 @@ enum scope_prefix_types {
|
||||
zfs_vdev_disk,
|
||||
zfs_vdev_file,
|
||||
zfs_vdev_mirror,
|
||||
zfs_vol,
|
||||
zfs_vnops,
|
||||
zfs_zevent,
|
||||
zfs_zio,
|
||||
|
@ -1373,6 +1373,9 @@ zvol_os_create_minor(const char *name)
|
||||
int error;
|
||||
bool replayed_zil = B_FALSE;
|
||||
|
||||
if (zvol_inhibit_dev)
|
||||
return (0);
|
||||
|
||||
ZFS_LOG(1, "Creating ZVOL %s...", name);
|
||||
hash = zvol_name_hash(name);
|
||||
if ((zv = zvol_find_by_name_hash(name, hash, RW_NONE)) != NULL) {
|
||||
|
@ -1788,9 +1788,6 @@ zvol_fini(void)
|
||||
ida_destroy(&zvol_ida);
|
||||
}
|
||||
|
||||
module_param(zvol_inhibit_dev, uint, 0644);
|
||||
MODULE_PARM_DESC(zvol_inhibit_dev, "Do not create zvol device nodes");
|
||||
|
||||
module_param(zvol_major, uint, 0444);
|
||||
MODULE_PARM_DESC(zvol_major, "Major number for zvol device");
|
||||
|
||||
|
@ -2154,6 +2154,8 @@ zvol_fini_impl(void)
|
||||
}
|
||||
}
|
||||
|
||||
ZFS_MODULE_PARAM(zfs_vol, zvol_, inhibit_dev, UINT, ZMOD_RW,
|
||||
"Do not create zvol device nodes");
|
||||
ZFS_MODULE_PARAM(zfs, , zvol_threads, UINT, ZMOD_RW,
|
||||
"Number of threads for I/O requests. Set to 0 to use all active CPUs");
|
||||
ZFS_MODULE_PARAM(zfs, , zvol_num_taskqs, UINT, ZMOD_RW,
|
||||
|
@ -99,7 +99,7 @@ VDEV_MAX_AUTO_ASHIFT vdev.max_auto_ashift zfs_vdev_max_auto_ashift
|
||||
VDEV_MIN_MS_COUNT vdev.min_ms_count zfs_vdev_min_ms_count
|
||||
VDEV_DIRECT_WR_VERIFY vdev.direct_write_verify zfs_vdev_direct_write_verify
|
||||
VDEV_VALIDATE_SKIP vdev.validate_skip vdev_validate_skip
|
||||
VOL_INHIBIT_DEV UNSUPPORTED zvol_inhibit_dev
|
||||
VOL_INHIBIT_DEV vol.inhibit_dev zvol_inhibit_dev
|
||||
VOL_MODE vol.mode zvol_volmode
|
||||
VOL_RECURSIVE vol.recursive UNSUPPORTED
|
||||
VOL_REQUEST_SYNC zvol_request_sync zvol_request_sync
|
||||
|
@ -42,7 +42,7 @@
|
||||
# 5. Verify "volmode=default" behaves accordingly to "volmode" module parameter
|
||||
# 6. Verify "volmode" property is inherited correctly
|
||||
# 7. Verify "volmode" behaves correctly at import time
|
||||
# 8. Verify "volmode" behaves accordingly to zvol_inhibit_dev (Linux only)
|
||||
# 8. Verify "volmode" behaves accordingly to zvol_inhibit_dev
|
||||
#
|
||||
|
||||
verify_runnable "global"
|
||||
@ -64,10 +64,8 @@ function sysctl_inhibit_dev # value
|
||||
{
|
||||
typeset value="$1"
|
||||
|
||||
if is_linux; then
|
||||
log_note "Setting zvol_inhibit_dev tunable to $value"
|
||||
log_must set_tunable32 VOL_INHIBIT_DEV $value
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
@ -230,8 +228,7 @@ log_must_busy zfs destroy $SUBZVOL
|
||||
blockdev_missing $ZDEV
|
||||
blockdev_missing $SUBZDEV
|
||||
|
||||
# 8. Verify "volmode" behaves accordingly to zvol_inhibit_dev (Linux only)
|
||||
if is_linux; then
|
||||
# 8. Verify "volmode" behaves accordingly to zvol_inhibit_dev
|
||||
sysctl_inhibit_dev 1
|
||||
# 7.1 Verify device nodes not are not created with "volmode=full"
|
||||
sysctl_volmode 1
|
||||
@ -255,6 +252,5 @@ if is_linux; then
|
||||
blockdev_missing $ZDEV
|
||||
set_volmode none $ZVOL
|
||||
blockdev_missing $ZDEV
|
||||
fi
|
||||
|
||||
log_pass "Verify that ZFS volume property 'volmode' works as intended"
|
||||
|
Loading…
Reference in New Issue
Block a user