diff options
author | Brian Behlendorf <[email protected]> | 2010-08-26 11:45:02 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2010-08-31 13:41:57 -0700 |
commit | 60101509ee73c6e61e50c0a4079097f31bb39f4b (patch) | |
tree | 4d17e0f9a56f9c6e70e79d15aa18a563c3e70b3a /module/zfs/zfs_ioctl.c | |
parent | 325f023544bbec6a478882c442e15304ee379759 (diff) |
Add linux kernel disk support
Native Linux vdev disk interfaces
Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'module/zfs/zfs_ioctl.c')
-rw-r--r-- | module/zfs/zfs_ioctl.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c index 99287e443..902c2342a 100644 --- a/module/zfs/zfs_ioctl.c +++ b/module/zfs/zfs_ioctl.c @@ -1292,6 +1292,9 @@ zfs_ioc_pool_import(zfs_cmd_t *zc) error = err; } + if (error == 0) + zvol_create_minors(zc->zc_name); + nvlist_free(config); if (props) @@ -2179,8 +2182,7 @@ zfs_prop_set_special(const char *dsname, zprop_source_t source, err = dsl_dataset_set_reservation(dsname, source, intval); break; case ZFS_PROP_VOLSIZE: - err = zvol_set_volsize(dsname, ddi_driver_major(zfs_dip), - intval); + err = zvol_set_volsize(dsname, intval); break; case ZFS_PROP_VERSION: { @@ -2654,6 +2656,30 @@ zfs_ioc_pool_get_props(zfs_cmd_t *zc) /* * inputs: + * zc_name name of volume + * + * outputs: none + */ +static int +zfs_ioc_create_minor(zfs_cmd_t *zc) +{ + return (zvol_create_minor(zc->zc_name)); +} + +/* + * inputs: + * zc_name name of volume + * + * outputs: none + */ +static int +zfs_ioc_remove_minor(zfs_cmd_t *zc) +{ + return (zvol_remove_minor(zc->zc_name)); +} + +/* + * inputs: * zc_name name of filesystem * zc_nvlist_src{_size} nvlist of delegated permissions * zc_perm_action allow/unallow flag @@ -4805,6 +4831,10 @@ static zfs_ioc_vec_t zfs_ioc_vec[] = { POOL_CHECK_SUSPENDED }, { zfs_ioc_set_prop, zfs_secpolicy_none, DATASET_NAME, B_TRUE, POOL_CHECK_SUSPENDED | POOL_CHECK_READONLY }, + { zfs_ioc_create_minor, zfs_secpolicy_config, DATASET_NAME, B_FALSE, + POOL_CHECK_NONE }, + { zfs_ioc_remove_minor, zfs_secpolicy_config, DATASET_NAME, B_FALSE, + POOL_CHECK_NONE }, { zfs_ioc_create, zfs_secpolicy_create, DATASET_NAME, B_TRUE, POOL_CHECK_SUSPENDED | POOL_CHECK_READONLY }, { zfs_ioc_destroy, zfs_secpolicy_destroy, DATASET_NAME, B_TRUE, |