Lines Matching refs:zc

313 static int zfs_ioc_userspace_upgrade(zfs_cmd_t *zc);
314 static int zfs_ioc_id_quota_upgrade(zfs_cmd_t *zc);
369 history_str_get(zfs_cmd_t *zc) in history_str_get() argument
373 if (zc->zc_history == 0) in history_str_get()
377 if (copyinstr((void *)(uintptr_t)zc->zc_history, in history_str_get()
448 zfs_log_history(zfs_cmd_t *zc) in zfs_log_history() argument
453 if ((buf = history_str_get(zc)) == NULL) in zfs_log_history()
456 if (spa_open(zc->zc_name, &spa, FTAG) == 0) { in zfs_log_history()
470 zfs_secpolicy_none(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_none() argument
481 zfs_secpolicy_read(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_read() argument
484 zone_dataset_visible(zc->zc_name, NULL)) in zfs_secpolicy_read()
746 zfs_secpolicy_set_fsacl(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_set_fsacl() argument
750 error = zfs_dozonecheck(zc->zc_name, cr); in zfs_secpolicy_set_fsacl()
763 zfs_secpolicy_rollback(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_rollback() argument
765 return (zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_rollback()
771 zfs_secpolicy_send(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_send() argument
782 cp = strchr(zc->zc_name, '@'); in zfs_secpolicy_send()
785 error = dsl_pool_hold(zc->zc_name, FTAG, &dp); in zfs_secpolicy_send()
789 error = dsl_dataset_hold_obj(dp, zc->zc_sendobj, FTAG, &ds); in zfs_secpolicy_send()
795 dsl_dataset_name(ds, zc->zc_name); in zfs_secpolicy_send()
797 error = zfs_secpolicy_write_perms_ds(zc->zc_name, ds, in zfs_secpolicy_send()
807 zfs_secpolicy_send_new(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_send_new() argument
809 return (zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_send_new()
815 zfs_secpolicy_deleg_share(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_deleg_share() argument
820 if ((error = lookupname(zc->zc_value, UIO_SYSSPACE, in zfs_secpolicy_deleg_share()
828 zc->zc_name) != 0)) { in zfs_secpolicy_deleg_share()
834 return (dsl_deleg_access(zc->zc_name, in zfs_secpolicy_deleg_share()
839 zfs_secpolicy_share(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_share() argument
844 return (zfs_secpolicy_deleg_share(zc, innvl, cr)); in zfs_secpolicy_share()
849 zfs_secpolicy_smb_acl(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_smb_acl() argument
854 return (zfs_secpolicy_deleg_share(zc, innvl, cr)); in zfs_secpolicy_smb_acl()
894 zfs_secpolicy_destroy(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_destroy() argument
896 return (zfs_secpolicy_destroy_perms(zc->zc_name, cr)); in zfs_secpolicy_destroy()
905 zfs_secpolicy_destroy_snaps(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_destroy_snaps() argument
967 zfs_secpolicy_rename(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_rename() argument
969 return (zfs_secpolicy_rename_perms(zc->zc_name, zc->zc_value, cr)); in zfs_secpolicy_rename()
974 zfs_secpolicy_promote(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_promote() argument
980 error = zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_promote()
985 error = dsl_pool_hold(zc->zc_name, FTAG, &dp); in zfs_secpolicy_promote()
989 error = dsl_dataset_hold(dp, zc->zc_name, FTAG, &clone); in zfs_secpolicy_promote()
1005 error = zfs_secpolicy_write_perms_ds(zc->zc_name, clone, in zfs_secpolicy_promote()
1022 zfs_secpolicy_recv(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_recv() argument
1026 if ((error = zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_recv()
1030 if ((error = zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_recv()
1034 return (zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_recv()
1050 zfs_secpolicy_snapshot(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_snapshot() argument
1081 zfs_secpolicy_bookmark(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_bookmark() argument
1106 zfs_secpolicy_remap(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_remap() argument
1108 return (zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_remap()
1114 zfs_secpolicy_destroy_bookmarks(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_destroy_bookmarks() argument
1155 zfs_secpolicy_log_history(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_log_history() argument
1167 zfs_secpolicy_create_clone(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_create_clone() argument
1173 if ((error = zfs_get_parent(zc->zc_name, parentname, in zfs_secpolicy_create_clone()
1196 zfs_secpolicy_config(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_config() argument
1209 zfs_secpolicy_diff(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_diff() argument
1216 error = zfs_secpolicy_write_perms(zc->zc_name, ZFS_DELEG_PERM_DIFF, cr); in zfs_secpolicy_diff()
1225 zfs_secpolicy_inject(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_inject() argument
1232 zfs_secpolicy_inherit_prop(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_inherit_prop() argument
1234 zfs_prop_t prop = zfs_name_to_prop(zc->zc_value); in zfs_secpolicy_inherit_prop()
1237 if (!zfs_prop_user(zc->zc_value)) in zfs_secpolicy_inherit_prop()
1239 return (zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_inherit_prop()
1242 return (zfs_secpolicy_setprop(zc->zc_name, prop, in zfs_secpolicy_inherit_prop()
1248 zfs_secpolicy_userspace_one(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_userspace_one() argument
1250 int err = zfs_secpolicy_read(zc, innvl, cr); in zfs_secpolicy_userspace_one()
1254 if (zc->zc_objset_type >= ZFS_NUM_USERQUOTA_PROPS) in zfs_secpolicy_userspace_one()
1257 if (zc->zc_value[0] == 0) { in zfs_secpolicy_userspace_one()
1262 if (zc->zc_objset_type == ZFS_PROP_USERUSED || in zfs_secpolicy_userspace_one()
1263 zc->zc_objset_type == ZFS_PROP_USERQUOTA || in zfs_secpolicy_userspace_one()
1264 zc->zc_objset_type == ZFS_PROP_USEROBJUSED || in zfs_secpolicy_userspace_one()
1265 zc->zc_objset_type == ZFS_PROP_USEROBJQUOTA) { in zfs_secpolicy_userspace_one()
1266 if (zc->zc_guid == crgetuid(cr)) in zfs_secpolicy_userspace_one()
1268 } else if (zc->zc_objset_type == ZFS_PROP_GROUPUSED || in zfs_secpolicy_userspace_one()
1269 zc->zc_objset_type == ZFS_PROP_GROUPQUOTA || in zfs_secpolicy_userspace_one()
1270 zc->zc_objset_type == ZFS_PROP_GROUPOBJUSED || in zfs_secpolicy_userspace_one()
1271 zc->zc_objset_type == ZFS_PROP_GROUPOBJQUOTA) { in zfs_secpolicy_userspace_one()
1272 if (groupmember(zc->zc_guid, cr)) in zfs_secpolicy_userspace_one()
1278 return (zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_userspace_one()
1279 userquota_perms[zc->zc_objset_type], cr)); in zfs_secpolicy_userspace_one()
1283 zfs_secpolicy_userspace_many(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_userspace_many() argument
1285 int err = zfs_secpolicy_read(zc, innvl, cr); in zfs_secpolicy_userspace_many()
1289 if (zc->zc_objset_type >= ZFS_NUM_USERQUOTA_PROPS) in zfs_secpolicy_userspace_many()
1292 return (zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_userspace_many()
1293 userquota_perms[zc->zc_objset_type], cr)); in zfs_secpolicy_userspace_many()
1298 zfs_secpolicy_userspace_upgrade(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_userspace_upgrade() argument
1300 return (zfs_secpolicy_setprop(zc->zc_name, ZFS_PROP_VERSION, in zfs_secpolicy_userspace_upgrade()
1306 zfs_secpolicy_hold(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_hold() argument
1330 zfs_secpolicy_release(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_release() argument
1351 zfs_secpolicy_load_key(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_load_key() argument
1353 return (zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_load_key()
1359 zfs_secpolicy_change_key(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_change_key() argument
1361 return (zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_change_key()
1369 zfs_secpolicy_tmp_snapshot(zfs_cmd_t *zc, nvlist_t *innvl, cred_t *cr) in zfs_secpolicy_tmp_snapshot() argument
1378 if ((error = zfs_secpolicy_write_perms(zc->zc_name, in zfs_secpolicy_tmp_snapshot()
1382 error = zfs_secpolicy_snapshot_perms(zc->zc_name, cr); in zfs_secpolicy_tmp_snapshot()
1386 error = zfs_secpolicy_hold(zc, innvl, cr); in zfs_secpolicy_tmp_snapshot()
1388 error = zfs_secpolicy_release(zc, innvl, cr); in zfs_secpolicy_tmp_snapshot()
1390 error = zfs_secpolicy_destroy(zc, innvl, cr); in zfs_secpolicy_tmp_snapshot()
1470 put_nvlist(zfs_cmd_t *zc, nvlist_t *nvl) in put_nvlist() argument
1478 if (size > zc->zc_nvlist_dst_size) { in put_nvlist()
1482 if (ddi_copyout(packed, (void *)(uintptr_t)zc->zc_nvlist_dst, in put_nvlist()
1483 size, zc->zc_iflags) != 0) in put_nvlist()
1488 zc->zc_nvlist_dst_size = size; in put_nvlist()
1489 zc->zc_nvlist_dst_filled = B_TRUE; in put_nvlist()
1570 zfs_ioc_pool_create(zfs_cmd_t *zc) in zfs_ioc_pool_create() argument
1576 char *spa_name = zc->zc_name; in zfs_ioc_pool_create()
1579 if (error = get_nvlist(zc->zc_nvlist_conf, zc->zc_nvlist_conf_size, in zfs_ioc_pool_create()
1580 zc->zc_iflags, &config)) in zfs_ioc_pool_create()
1583 if (zc->zc_nvlist_src_size != 0 && (error = in zfs_ioc_pool_create()
1584 get_nvlist(zc->zc_nvlist_src, zc->zc_nvlist_src_size, in zfs_ioc_pool_create()
1585 zc->zc_iflags, &props))) { in zfs_ioc_pool_create()
1635 error = spa_create(zc->zc_name, config, props, zplprops, dcp); in zfs_ioc_pool_create()
1655 zfs_ioc_pool_destroy(zfs_cmd_t *zc) in zfs_ioc_pool_destroy() argument
1658 zfs_log_history(zc); in zfs_ioc_pool_destroy()
1659 error = spa_destroy(zc->zc_name); in zfs_ioc_pool_destroy()
1661 zvol_remove_minors(zc->zc_name); in zfs_ioc_pool_destroy()
1666 zfs_ioc_pool_import(zfs_cmd_t *zc) in zfs_ioc_pool_import() argument
1672 if ((error = get_nvlist(zc->zc_nvlist_conf, zc->zc_nvlist_conf_size, in zfs_ioc_pool_import()
1673 zc->zc_iflags, &config)) != 0) in zfs_ioc_pool_import()
1676 if (zc->zc_nvlist_src_size != 0 && (error = in zfs_ioc_pool_import()
1677 get_nvlist(zc->zc_nvlist_src, zc->zc_nvlist_src_size, in zfs_ioc_pool_import()
1678 zc->zc_iflags, &props))) { in zfs_ioc_pool_import()
1684 guid != zc->zc_guid) in zfs_ioc_pool_import()
1687 error = spa_import(zc->zc_name, config, props, zc->zc_cookie); in zfs_ioc_pool_import()
1689 if (zc->zc_nvlist_dst != 0) { in zfs_ioc_pool_import()
1692 if ((err = put_nvlist(zc, config)) != 0) in zfs_ioc_pool_import()
1704 zfs_ioc_pool_export(zfs_cmd_t *zc) in zfs_ioc_pool_export() argument
1707 boolean_t force = (boolean_t)zc->zc_cookie; in zfs_ioc_pool_export()
1708 boolean_t hardforce = (boolean_t)zc->zc_guid; in zfs_ioc_pool_export()
1710 zfs_log_history(zc); in zfs_ioc_pool_export()
1711 error = spa_export(zc->zc_name, NULL, force, hardforce); in zfs_ioc_pool_export()
1713 zvol_remove_minors(zc->zc_name); in zfs_ioc_pool_export()
1718 zfs_ioc_pool_configs(zfs_cmd_t *zc) in zfs_ioc_pool_configs() argument
1723 if ((configs = spa_all_configs(&zc->zc_cookie)) == NULL) in zfs_ioc_pool_configs()
1726 error = put_nvlist(zc, configs); in zfs_ioc_pool_configs()
1743 zfs_ioc_pool_stats(zfs_cmd_t *zc) in zfs_ioc_pool_stats() argument
1749 error = spa_get_stats(zc->zc_name, &config, zc->zc_value, in zfs_ioc_pool_stats()
1750 sizeof (zc->zc_value)); in zfs_ioc_pool_stats()
1753 ret = put_nvlist(zc, config); in zfs_ioc_pool_stats()
1761 zc->zc_cookie = error; in zfs_ioc_pool_stats()
1774 zfs_ioc_pool_tryimport(zfs_cmd_t *zc) in zfs_ioc_pool_tryimport() argument
1779 if ((error = get_nvlist(zc->zc_nvlist_conf, zc->zc_nvlist_conf_size, in zfs_ioc_pool_tryimport()
1780 zc->zc_iflags, &tryconfig)) != 0) in zfs_ioc_pool_tryimport()
1790 error = put_nvlist(zc, config); in zfs_ioc_pool_tryimport()
1803 zfs_ioc_pool_scan(zfs_cmd_t *zc) in zfs_ioc_pool_scan() argument
1808 if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) in zfs_ioc_pool_scan()
1811 if (zc->zc_flags >= POOL_SCRUB_FLAGS_END) in zfs_ioc_pool_scan()
1814 if (zc->zc_flags == POOL_SCRUB_PAUSE) in zfs_ioc_pool_scan()
1816 else if (zc->zc_cookie == POOL_SCAN_NONE) in zfs_ioc_pool_scan()
1819 error = spa_scan(spa, zc->zc_cookie); in zfs_ioc_pool_scan()
1827 zfs_ioc_pool_freeze(zfs_cmd_t *zc) in zfs_ioc_pool_freeze() argument
1832 error = spa_open(zc->zc_name, &spa, FTAG); in zfs_ioc_pool_freeze()
1841 zfs_ioc_pool_upgrade(zfs_cmd_t *zc) in zfs_ioc_pool_upgrade() argument
1846 if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) in zfs_ioc_pool_upgrade()
1849 if (zc->zc_cookie < spa_version(spa) || in zfs_ioc_pool_upgrade()
1850 !SPA_VERSION_IS_SUPPORTED(zc->zc_cookie)) { in zfs_ioc_pool_upgrade()
1855 spa_upgrade(spa, zc->zc_cookie); in zfs_ioc_pool_upgrade()
1862 zfs_ioc_pool_get_history(zfs_cmd_t *zc) in zfs_ioc_pool_get_history() argument
1869 if ((size = zc->zc_history_len) == 0) in zfs_ioc_pool_get_history()
1872 if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) in zfs_ioc_pool_get_history()
1881 if ((error = spa_history_get(spa, &zc->zc_history_offset, in zfs_ioc_pool_get_history()
1882 &zc->zc_history_len, hist_buf)) == 0) { in zfs_ioc_pool_get_history()
1884 (void *)(uintptr_t)zc->zc_history, in zfs_ioc_pool_get_history()
1885 zc->zc_history_len, zc->zc_iflags); in zfs_ioc_pool_get_history()
1894 zfs_ioc_pool_reguid(zfs_cmd_t *zc) in zfs_ioc_pool_reguid() argument
1899 error = spa_open(zc->zc_name, &spa, FTAG); in zfs_ioc_pool_reguid()
1908 zfs_ioc_dsobj_to_dsname(zfs_cmd_t *zc) in zfs_ioc_dsobj_to_dsname() argument
1910 return (dsl_dsobj_to_dsname(zc->zc_name, zc->zc_obj, zc->zc_value)); in zfs_ioc_dsobj_to_dsname()
1922 zfs_ioc_obj_to_path(zfs_cmd_t *zc) in zfs_ioc_obj_to_path() argument
1928 if ((error = dmu_objset_hold_flags(zc->zc_name, B_TRUE, in zfs_ioc_obj_to_path()
1935 error = zfs_obj_to_path(os, zc->zc_obj, zc->zc_value, in zfs_ioc_obj_to_path()
1936 sizeof (zc->zc_value)); in zfs_ioc_obj_to_path()
1952 zfs_ioc_obj_to_stats(zfs_cmd_t *zc) in zfs_ioc_obj_to_stats() argument
1958 if ((error = dmu_objset_hold_flags(zc->zc_name, B_TRUE, in zfs_ioc_obj_to_stats()
1965 error = zfs_obj_to_stats(os, zc->zc_obj, &zc->zc_stat, zc->zc_value, in zfs_ioc_obj_to_stats()
1966 sizeof (zc->zc_value)); in zfs_ioc_obj_to_stats()
1973 zfs_ioc_vdev_add(zfs_cmd_t *zc) in zfs_ioc_vdev_add() argument
1979 error = spa_open(zc->zc_name, &spa, FTAG); in zfs_ioc_vdev_add()
1983 error = get_nvlist(zc->zc_nvlist_conf, zc->zc_nvlist_conf_size, in zfs_ioc_vdev_add()
1984 zc->zc_iflags, &config); in zfs_ioc_vdev_add()
2001 zfs_ioc_vdev_remove(zfs_cmd_t *zc) in zfs_ioc_vdev_remove() argument
2006 error = spa_open(zc->zc_name, &spa, FTAG); in zfs_ioc_vdev_remove()
2009 if (zc->zc_cookie != 0) { in zfs_ioc_vdev_remove()
2012 error = spa_vdev_remove(spa, zc->zc_guid, B_FALSE); in zfs_ioc_vdev_remove()
2019 zfs_ioc_vdev_set_state(zfs_cmd_t *zc) in zfs_ioc_vdev_set_state() argument
2025 if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) in zfs_ioc_vdev_set_state()
2027 switch (zc->zc_cookie) { in zfs_ioc_vdev_set_state()
2029 error = vdev_online(spa, zc->zc_guid, zc->zc_obj, &newstate); in zfs_ioc_vdev_set_state()
2033 error = vdev_offline(spa, zc->zc_guid, zc->zc_obj); in zfs_ioc_vdev_set_state()
2037 if (zc->zc_obj != VDEV_AUX_ERR_EXCEEDED && in zfs_ioc_vdev_set_state()
2038 zc->zc_obj != VDEV_AUX_EXTERNAL) in zfs_ioc_vdev_set_state()
2039 zc->zc_obj = VDEV_AUX_ERR_EXCEEDED; in zfs_ioc_vdev_set_state()
2041 error = vdev_fault(spa, zc->zc_guid, zc->zc_obj); in zfs_ioc_vdev_set_state()
2045 if (zc->zc_obj != VDEV_AUX_ERR_EXCEEDED && in zfs_ioc_vdev_set_state()
2046 zc->zc_obj != VDEV_AUX_EXTERNAL) in zfs_ioc_vdev_set_state()
2047 zc->zc_obj = VDEV_AUX_ERR_EXCEEDED; in zfs_ioc_vdev_set_state()
2049 error = vdev_degrade(spa, zc->zc_guid, zc->zc_obj); in zfs_ioc_vdev_set_state()
2055 zc->zc_cookie = newstate; in zfs_ioc_vdev_set_state()
2061 zfs_ioc_vdev_attach(zfs_cmd_t *zc) in zfs_ioc_vdev_attach() argument
2064 int replacing = zc->zc_cookie; in zfs_ioc_vdev_attach()
2068 if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) in zfs_ioc_vdev_attach()
2071 if ((error = get_nvlist(zc->zc_nvlist_conf, zc->zc_nvlist_conf_size, in zfs_ioc_vdev_attach()
2072 zc->zc_iflags, &config)) == 0) { in zfs_ioc_vdev_attach()
2073 error = spa_vdev_attach(spa, zc->zc_guid, config, replacing); in zfs_ioc_vdev_attach()
2082 zfs_ioc_vdev_detach(zfs_cmd_t *zc) in zfs_ioc_vdev_detach() argument
2087 if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) in zfs_ioc_vdev_detach()
2090 error = spa_vdev_detach(spa, zc->zc_guid, 0, B_FALSE); in zfs_ioc_vdev_detach()
2097 zfs_ioc_vdev_split(zfs_cmd_t *zc) in zfs_ioc_vdev_split() argument
2102 boolean_t exp = !!(zc->zc_cookie & ZPOOL_EXPORT_AFTER_SPLIT); in zfs_ioc_vdev_split()
2104 if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) in zfs_ioc_vdev_split()
2107 if (error = get_nvlist(zc->zc_nvlist_conf, zc->zc_nvlist_conf_size, in zfs_ioc_vdev_split()
2108 zc->zc_iflags, &config)) { in zfs_ioc_vdev_split()
2113 if (zc->zc_nvlist_src_size != 0 && (error = in zfs_ioc_vdev_split()
2114 get_nvlist(zc->zc_nvlist_src, zc->zc_nvlist_src_size, in zfs_ioc_vdev_split()
2115 zc->zc_iflags, &props))) { in zfs_ioc_vdev_split()
2121 error = spa_vdev_split_mirror(spa, zc->zc_string, config, props, exp); in zfs_ioc_vdev_split()
2132 zfs_ioc_vdev_setpath(zfs_cmd_t *zc) in zfs_ioc_vdev_setpath() argument
2135 char *path = zc->zc_value; in zfs_ioc_vdev_setpath()
2136 uint64_t guid = zc->zc_guid; in zfs_ioc_vdev_setpath()
2139 error = spa_open(zc->zc_name, &spa, FTAG); in zfs_ioc_vdev_setpath()
2149 zfs_ioc_vdev_setfru(zfs_cmd_t *zc) in zfs_ioc_vdev_setfru() argument
2152 char *fru = zc->zc_value; in zfs_ioc_vdev_setfru()
2153 uint64_t guid = zc->zc_guid; in zfs_ioc_vdev_setfru()
2156 error = spa_open(zc->zc_name, &spa, FTAG); in zfs_ioc_vdev_setfru()
2166 zfs_ioc_objset_stats_impl(zfs_cmd_t *zc, objset_t *os) in zfs_ioc_objset_stats_impl() argument
2171 dmu_objset_fast_stat(os, &zc->zc_objset_stats); in zfs_ioc_objset_stats_impl()
2173 if (zc->zc_nvlist_dst != 0 && in zfs_ioc_objset_stats_impl()
2183 if (!zc->zc_objset_stats.dds_inconsistent && in zfs_ioc_objset_stats_impl()
2190 error = put_nvlist(zc, nv); in zfs_ioc_objset_stats_impl()
2208 zfs_ioc_objset_stats(zfs_cmd_t *zc) in zfs_ioc_objset_stats() argument
2213 error = dmu_objset_hold(zc->zc_name, FTAG, &os); in zfs_ioc_objset_stats()
2215 error = zfs_ioc_objset_stats_impl(zc, os); in zfs_ioc_objset_stats()
2236 zfs_ioc_objset_recvd_props(zfs_cmd_t *zc) in zfs_ioc_objset_recvd_props() argument
2246 if (!dsl_prop_get_hasrecvd(zc->zc_name)) in zfs_ioc_objset_recvd_props()
2249 if (zc->zc_nvlist_dst != 0 && in zfs_ioc_objset_recvd_props()
2250 (error = dsl_prop_get_received(zc->zc_name, &nv)) == 0) { in zfs_ioc_objset_recvd_props()
2251 error = put_nvlist(zc, nv); in zfs_ioc_objset_recvd_props()
2284 zfs_ioc_objset_zplprops(zfs_cmd_t *zc) in zfs_ioc_objset_zplprops() argument
2290 if (err = dmu_objset_hold(zc->zc_name, FTAG, &os)) in zfs_ioc_objset_zplprops()
2293 dmu_objset_fast_stat(os, &zc->zc_objset_stats); in zfs_ioc_objset_zplprops()
2300 if (zc->zc_nvlist_dst != 0 && in zfs_ioc_objset_zplprops()
2301 !zc->zc_objset_stats.dds_inconsistent && in zfs_ioc_objset_zplprops()
2310 err = put_nvlist(zc, nv); in zfs_ioc_objset_zplprops()
2350 zfs_ioc_dataset_list_next(zfs_cmd_t *zc) in zfs_ioc_dataset_list_next() argument
2355 size_t orig_len = strlen(zc->zc_name); in zfs_ioc_dataset_list_next()
2358 if (error = dmu_objset_hold(zc->zc_name, FTAG, &os)) { in zfs_ioc_dataset_list_next()
2364 p = strrchr(zc->zc_name, '/'); in zfs_ioc_dataset_list_next()
2366 (void) strlcat(zc->zc_name, "/", sizeof (zc->zc_name)); in zfs_ioc_dataset_list_next()
2367 p = zc->zc_name + strlen(zc->zc_name); in zfs_ioc_dataset_list_next()
2371 sizeof (zc->zc_name) - (p - zc->zc_name), p, in zfs_ioc_dataset_list_next()
2372 NULL, &zc->zc_cookie); in zfs_ioc_dataset_list_next()
2375 } while (error == 0 && dataset_name_hidden(zc->zc_name)); in zfs_ioc_dataset_list_next()
2382 if (error == 0 && strchr(zc->zc_name, '$') == NULL) { in zfs_ioc_dataset_list_next()
2383 error = zfs_ioc_objset_stats(zc); /* fill in the stats */ in zfs_ioc_dataset_list_next()
2386 zc->zc_name[orig_len] = '\0'; in zfs_ioc_dataset_list_next()
2407 zfs_ioc_snapshot_list_next(zfs_cmd_t *zc) in zfs_ioc_snapshot_list_next() argument
2412 error = dmu_objset_hold(zc->zc_name, FTAG, &os); in zfs_ioc_snapshot_list_next()
2421 if (strlcat(zc->zc_name, "@", sizeof (zc->zc_name)) >= in zfs_ioc_snapshot_list_next()
2428 sizeof (zc->zc_name) - strlen(zc->zc_name), in zfs_ioc_snapshot_list_next()
2429 zc->zc_name + strlen(zc->zc_name), &zc->zc_obj, &zc->zc_cookie, in zfs_ioc_snapshot_list_next()
2432 if (error == 0 && !zc->zc_simple) { in zfs_ioc_snapshot_list_next()
2436 error = dsl_dataset_hold_obj(dp, zc->zc_obj, FTAG, &ds); in zfs_ioc_snapshot_list_next()
2442 error = zfs_ioc_objset_stats_impl(zc, ossnap); in zfs_ioc_snapshot_list_next()
2452 *strchr(zc->zc_name, '@') = '\0'; in zfs_ioc_snapshot_list_next()
2591 zfs_cmd_t *zc; in zfs_prop_set_special() local
2593 zc = kmem_zalloc(sizeof (zfs_cmd_t), KM_SLEEP); in zfs_prop_set_special()
2594 (void) strcpy(zc->zc_name, dsname); in zfs_prop_set_special()
2595 (void) zfs_ioc_userspace_upgrade(zc); in zfs_prop_set_special()
2596 (void) zfs_ioc_id_quota_upgrade(zc); in zfs_prop_set_special()
2597 kmem_free(zc, sizeof (zfs_cmd_t)); in zfs_prop_set_special()
2853 zfs_ioc_set_prop(zfs_cmd_t *zc) in zfs_ioc_set_prop() argument
2856 boolean_t received = zc->zc_cookie; in zfs_ioc_set_prop()
2862 if ((error = get_nvlist(zc->zc_nvlist_src, zc->zc_nvlist_src_size, in zfs_ioc_set_prop()
2863 zc->zc_iflags, &nvl)) != 0) in zfs_ioc_set_prop()
2869 if (dsl_prop_get_received(zc->zc_name, &origprops) == 0) { in zfs_ioc_set_prop()
2870 (void) clear_received_props(zc->zc_name, in zfs_ioc_set_prop()
2875 error = dsl_prop_set_hasrecvd(zc->zc_name); in zfs_ioc_set_prop()
2880 error = zfs_set_prop_nvlist(zc->zc_name, source, nvl, errors); in zfs_ioc_set_prop()
2882 if (zc->zc_nvlist_dst != 0 && errors != NULL) { in zfs_ioc_set_prop()
2883 (void) put_nvlist(zc, errors); in zfs_ioc_set_prop()
2900 zfs_ioc_inherit_prop(zfs_cmd_t *zc) in zfs_ioc_inherit_prop() argument
2902 const char *propname = zc->zc_value; in zfs_ioc_inherit_prop()
2904 boolean_t received = zc->zc_cookie; in zfs_ioc_inherit_prop()
2947 err = zfs_prop_set_special(zc->zc_name, source, pair); in zfs_ioc_inherit_prop()
2963 return (dsl_prop_inherit(zc->zc_name, zc->zc_value, source)); in zfs_ioc_inherit_prop()
2967 zfs_ioc_pool_set_props(zfs_cmd_t *zc) in zfs_ioc_pool_set_props() argument
2974 if (error = get_nvlist(zc->zc_nvlist_src, zc->zc_nvlist_src_size, in zfs_ioc_pool_set_props()
2975 zc->zc_iflags, &props)) in zfs_ioc_pool_set_props()
2987 if ((spa = spa_lookup(zc->zc_name)) != NULL) { in zfs_ioc_pool_set_props()
2998 if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) { in zfs_ioc_pool_set_props()
3012 zfs_ioc_pool_get_props(zfs_cmd_t *zc) in zfs_ioc_pool_get_props() argument
3018 if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) { in zfs_ioc_pool_get_props()
3025 if ((spa = spa_lookup(zc->zc_name)) != NULL) in zfs_ioc_pool_get_props()
3033 if (error == 0 && zc->zc_nvlist_dst != 0) in zfs_ioc_pool_get_props()
3034 error = put_nvlist(zc, nvp); in zfs_ioc_pool_get_props()
3051 zfs_ioc_set_fsacl(zfs_cmd_t *zc) in zfs_ioc_set_fsacl() argument
3056 if ((error = get_nvlist(zc->zc_nvlist_src, zc->zc_nvlist_src_size, in zfs_ioc_set_fsacl()
3057 zc->zc_iflags, &fsaclnv)) != 0) in zfs_ioc_set_fsacl()
3076 if (zc->zc_perm_action == B_FALSE) { in zfs_ioc_set_fsacl()
3077 error = dsl_deleg_can_allow(zc->zc_name, in zfs_ioc_set_fsacl()
3080 error = dsl_deleg_can_unallow(zc->zc_name, in zfs_ioc_set_fsacl()
3086 error = dsl_deleg_set(zc->zc_name, fsaclnv, zc->zc_perm_action); in zfs_ioc_set_fsacl()
3100 zfs_ioc_get_fsacl(zfs_cmd_t *zc) in zfs_ioc_get_fsacl() argument
3105 if ((error = dsl_deleg_get(zc->zc_name, &nvp)) == 0) { in zfs_ioc_get_fsacl()
3106 error = put_nvlist(zc, nvp); in zfs_ioc_get_fsacl()
3928 zfs_ioc_destroy(zfs_cmd_t *zc) in zfs_ioc_destroy() argument
3934 err = dmu_objset_hold(zc->zc_name, FTAG, &os); in zfs_ioc_destroy()
3941 zfs_unmount_snap(zc->zc_name); in zfs_ioc_destroy()
3943 if (strchr(zc->zc_name, '@')) { in zfs_ioc_destroy()
3944 err = dsl_destroy_snapshot(zc->zc_name, zc->zc_defer_destroy); in zfs_ioc_destroy()
3946 err = dsl_destroy_head(zc->zc_name); in zfs_ioc_destroy()
3959 zc->zc_name, recv_clone_name) >= in zfs_ioc_destroy()
3971 err = dsl_destroy_head(zc->zc_name); in zfs_ioc_destroy()
3977 (void) zvol_remove_minor(zc->zc_name); in zfs_ioc_destroy()
4214 zfs_ioc_rename(zfs_cmd_t *zc) in zfs_ioc_rename() argument
4218 boolean_t recursive = zc->zc_cookie & 1; in zfs_ioc_rename()
4223 zc->zc_name[sizeof (zc->zc_name) - 1] = '\0'; in zfs_ioc_rename()
4224 zc->zc_value[sizeof (zc->zc_value) - 1] = '\0'; in zfs_ioc_rename()
4225 if (dataset_namecheck(zc->zc_name, NULL, NULL) != 0 || in zfs_ioc_rename()
4226 dataset_namecheck(zc->zc_value, NULL, NULL) != 0 || in zfs_ioc_rename()
4227 strchr(zc->zc_name, '%') || strchr(zc->zc_value, '%')) in zfs_ioc_rename()
4230 err = dmu_objset_hold(zc->zc_name, FTAG, &os); in zfs_ioc_rename()
4236 at = strchr(zc->zc_name, '@'); in zfs_ioc_rename()
4241 if (strncmp(zc->zc_name, zc->zc_value, at - zc->zc_name + 1)) in zfs_ioc_rename()
4245 error = dmu_objset_find(zc->zc_name, in zfs_ioc_rename()
4253 error = dsl_dataset_rename_snapshot(zc->zc_name, in zfs_ioc_rename()
4254 at + 1, strchr(zc->zc_value, '@') + 1, recursive); in zfs_ioc_rename()
4260 (void) zvol_remove_minor(zc->zc_name); in zfs_ioc_rename()
4261 return (dsl_dir_rename(zc->zc_name, zc->zc_value)); in zfs_ioc_rename()
4567 zfs_cmd_t *zc; in zfs_check_clearable() local
4577 zc = kmem_alloc(sizeof (zfs_cmd_t), KM_SLEEP); in zfs_check_clearable()
4578 (void) strcpy(zc->zc_name, dataset); in zfs_check_clearable()
4583 (void) strcpy(zc->zc_value, nvpair_name(pair)); in zfs_check_clearable()
4585 (err = zfs_secpolicy_inherit_prop(zc, NULL, CRED())) != 0) { in zfs_check_clearable()
4588 zc->zc_value, err) == 0); in zfs_check_clearable()
4592 kmem_free(zc, sizeof (zfs_cmd_t)); in zfs_check_clearable()
5062 zfs_ioc_recv(zfs_cmd_t *zc) in zfs_ioc_recv() argument
5074 if (dataset_namecheck(zc->zc_value, NULL, NULL) != 0 || in zfs_ioc_recv()
5075 strchr(zc->zc_value, '@') == NULL || in zfs_ioc_recv()
5076 strchr(zc->zc_value, '%') != NULL) { in zfs_ioc_recv()
5080 (void) strlcpy(tofs, zc->zc_value, sizeof (tofs)); in zfs_ioc_recv()
5084 if (zc->zc_nvlist_src != 0 && in zfs_ioc_recv()
5085 (error = get_nvlist(zc->zc_nvlist_src, zc->zc_nvlist_src_size, in zfs_ioc_recv()
5086 zc->zc_iflags, &recvdprops)) != 0) { in zfs_ioc_recv()
5090 if (zc->zc_nvlist_conf != 0 && in zfs_ioc_recv()
5091 (error = get_nvlist(zc->zc_nvlist_conf, zc->zc_nvlist_conf_size, in zfs_ioc_recv()
5092 zc->zc_iflags, &localprops)) != 0) { in zfs_ioc_recv()
5096 if (zc->zc_history_offset != 0 && in zfs_ioc_recv()
5097 (error = get_nvlist(zc->zc_history_offset, zc->zc_history_len, in zfs_ioc_recv()
5098 zc->zc_iflags, &hidden_args)) != 0) { in zfs_ioc_recv()
5102 if (zc->zc_string[0]) in zfs_ioc_recv()
5103 origin = zc->zc_string; in zfs_ioc_recv()
5106 begin_record.drr_payloadlen = zc->zc_begin_record.drr_payloadlen; in zfs_ioc_recv()
5107 begin_record.drr_u.drr_begin = zc->zc_begin_record.drr_u.drr_begin; in zfs_ioc_recv()
5110 hidden_args, zc->zc_guid, zc->zc_resumable, zc->zc_cookie, in zfs_ioc_recv()
5111 &begin_record, zc->zc_cleanup_fd, &zc->zc_cookie, &zc->zc_obj, in zfs_ioc_recv()
5112 &zc->zc_action_handle, &errors); in zfs_ioc_recv()
5118 if (zc->zc_nvlist_dst_size != 0 && errors != NULL && in zfs_ioc_recv()
5119 (nvlist_smush(errors, zc->zc_nvlist_dst_size) != 0 || in zfs_ioc_recv()
5120 put_nvlist(zc, errors) != 0)) { in zfs_ioc_recv()
5152 zfs_ioc_send(zfs_cmd_t *zc) in zfs_ioc_send() argument
5156 boolean_t estimate = (zc->zc_guid != 0); in zfs_ioc_send()
5157 boolean_t embedok = (zc->zc_flags & 0x1); in zfs_ioc_send()
5158 boolean_t large_block_ok = (zc->zc_flags & 0x2); in zfs_ioc_send()
5159 boolean_t compressok = (zc->zc_flags & 0x4); in zfs_ioc_send()
5160 boolean_t rawok = (zc->zc_flags & 0x8); in zfs_ioc_send()
5162 if (zc->zc_obj != 0) { in zfs_ioc_send()
5166 error = dsl_pool_hold(zc->zc_name, FTAG, &dp); in zfs_ioc_send()
5170 error = dsl_dataset_hold_obj(dp, zc->zc_sendobj, FTAG, &tosnap); in zfs_ioc_send()
5177 zc->zc_fromobj = in zfs_ioc_send()
5188 error = dsl_pool_hold(zc->zc_name, FTAG, &dp); in zfs_ioc_send()
5192 error = dsl_dataset_hold_obj(dp, zc->zc_sendobj, in zfs_ioc_send()
5199 if (zc->zc_fromobj != 0) { in zfs_ioc_send()
5200 error = dsl_dataset_hold_obj(dp, zc->zc_fromobj, in zfs_ioc_send()
5210 &zc->zc_objset_type); in zfs_ioc_send()
5217 file_t *fp = getf(zc->zc_cookie); in zfs_ioc_send()
5222 error = dmu_send_obj(zc->zc_name, zc->zc_sendobj, in zfs_ioc_send()
5223 zc->zc_fromobj, embedok, large_block_ok, compressok, rawok, in zfs_ioc_send()
5224 zc->zc_cookie, fp->f_vnode, &off); in zfs_ioc_send()
5228 releasef(zc->zc_cookie); in zfs_ioc_send()
5242 zfs_ioc_send_progress(zfs_cmd_t *zc) in zfs_ioc_send_progress() argument
5249 error = dsl_pool_hold(zc->zc_name, FTAG, &dp); in zfs_ioc_send_progress()
5253 error = dsl_dataset_hold(dp, zc->zc_name, FTAG, &ds); in zfs_ioc_send_progress()
5269 if (dsp->dsa_outfd == zc->zc_cookie && in zfs_ioc_send_progress()
5275 zc->zc_cookie = *(dsp->dsa_off); in zfs_ioc_send_progress()
5286 zfs_ioc_inject_fault(zfs_cmd_t *zc) in zfs_ioc_inject_fault() argument
5290 error = zio_inject_fault(zc->zc_name, (int)zc->zc_guid, &id, in zfs_ioc_inject_fault()
5291 &zc->zc_inject_record); in zfs_ioc_inject_fault()
5294 zc->zc_guid = (uint64_t)id; in zfs_ioc_inject_fault()
5300 zfs_ioc_clear_fault(zfs_cmd_t *zc) in zfs_ioc_clear_fault() argument
5302 return (zio_clear_fault((int)zc->zc_guid)); in zfs_ioc_clear_fault()
5306 zfs_ioc_inject_list_next(zfs_cmd_t *zc) in zfs_ioc_inject_list_next() argument
5308 int id = (int)zc->zc_guid; in zfs_ioc_inject_list_next()
5311 error = zio_inject_list_next(&id, zc->zc_name, sizeof (zc->zc_name), in zfs_ioc_inject_list_next()
5312 &zc->zc_inject_record); in zfs_ioc_inject_list_next()
5314 zc->zc_guid = id; in zfs_ioc_inject_list_next()
5320 zfs_ioc_error_log(zfs_cmd_t *zc) in zfs_ioc_error_log() argument
5324 size_t count = (size_t)zc->zc_nvlist_dst_size; in zfs_ioc_error_log()
5326 if ((error = spa_open(zc->zc_name, &spa, FTAG)) != 0) in zfs_ioc_error_log()
5329 error = spa_get_errlog(spa, (void *)(uintptr_t)zc->zc_nvlist_dst, in zfs_ioc_error_log()
5332 zc->zc_nvlist_dst_size = count; in zfs_ioc_error_log()
5334 zc->zc_nvlist_dst_size = spa_get_errlog_size(spa); in zfs_ioc_error_log()
5342 zfs_ioc_clear(zfs_cmd_t *zc) in zfs_ioc_clear() argument
5352 spa = spa_lookup(zc->zc_name); in zfs_ioc_clear()
5364 if (zc->zc_cookie & ZPOOL_NO_REWIND) { in zfs_ioc_clear()
5365 error = spa_open(zc->zc_name, &spa, FTAG); in zfs_ioc_clear()
5370 if (zc->zc_nvlist_src == 0) in zfs_ioc_clear()
5373 if ((error = get_nvlist(zc->zc_nvlist_src, in zfs_ioc_clear()
5374 zc->zc_nvlist_src_size, zc->zc_iflags, &policy)) == 0) { in zfs_ioc_clear()
5375 error = spa_open_rewind(zc->zc_name, &spa, FTAG, in zfs_ioc_clear()
5380 if ((err = put_nvlist(zc, config)) != 0) in zfs_ioc_clear()
5400 if (zc->zc_guid == 0) { in zfs_ioc_clear()
5403 vd = spa_lookup_by_guid(spa, zc->zc_guid, B_TRUE); in zfs_ioc_clear()
5427 zfs_ioc_pool_reopen(zfs_cmd_t *zc) in zfs_ioc_pool_reopen() argument
5432 error = spa_open(zc->zc_name, &spa, FTAG); in zfs_ioc_pool_reopen()
5460 zfs_ioc_promote(zfs_cmd_t *zc) in zfs_ioc_promote() argument
5468 zc->zc_name[sizeof (zc->zc_name) - 1] = '\0'; in zfs_ioc_promote()
5469 if (dataset_namecheck(zc->zc_name, NULL, NULL) != 0 || in zfs_ioc_promote()
5470 strchr(zc->zc_name, '%')) in zfs_ioc_promote()
5473 error = dsl_pool_hold(zc->zc_name, FTAG, &dp); in zfs_ioc_promote()
5477 error = dsl_dataset_hold(dp, zc->zc_name, FTAG, &ds); in zfs_ioc_promote()
5511 return (dsl_dataset_promote(zc->zc_name, zc->zc_string)); in zfs_ioc_promote()
5527 zfs_ioc_userspace_one(zfs_cmd_t *zc) in zfs_ioc_userspace_one() argument
5532 if (zc->zc_objset_type >= ZFS_NUM_USERQUOTA_PROPS) in zfs_ioc_userspace_one()
5535 error = zfsvfs_hold(zc->zc_name, FTAG, &zfsvfs, B_FALSE); in zfs_ioc_userspace_one()
5540 zc->zc_objset_type, zc->zc_value, zc->zc_guid, &zc->zc_cookie); in zfs_ioc_userspace_one()
5558 zfs_ioc_userspace_many(zfs_cmd_t *zc) in zfs_ioc_userspace_many() argument
5561 int bufsize = zc->zc_nvlist_dst_size; in zfs_ioc_userspace_many()
5566 int error = zfsvfs_hold(zc->zc_name, FTAG, &zfsvfs, B_FALSE); in zfs_ioc_userspace_many()
5572 error = zfs_userspace_many(zfsvfs, zc->zc_objset_type, &zc->zc_cookie, in zfs_ioc_userspace_many()
5573 buf, &zc->zc_nvlist_dst_size); in zfs_ioc_userspace_many()
5577 (void *)(uintptr_t)zc->zc_nvlist_dst, in zfs_ioc_userspace_many()
5578 zc->zc_nvlist_dst_size); in zfs_ioc_userspace_many()
5594 zfs_ioc_userspace_upgrade(zfs_cmd_t *zc) in zfs_ioc_userspace_upgrade() argument
5600 if (getzfsvfs(zc->zc_name, &zfsvfs) == 0) { in zfs_ioc_userspace_upgrade()
5622 error = dmu_objset_hold_flags(zc->zc_name, B_TRUE, FTAG, &os); in zfs_ioc_userspace_upgrade()
5641 zfs_ioc_id_quota_upgrade(zfs_cmd_t *zc) in zfs_ioc_id_quota_upgrade() argument
5646 error = dmu_objset_hold(zc->zc_name, FTAG, &os); in zfs_ioc_id_quota_upgrade()
5716 zfs_ioc_share(zfs_cmd_t *zc) in zfs_ioc_share() argument
5721 switch (zc->zc_share.z_sharetype) { in zfs_ioc_share()
5776 switch (zc->zc_share.z_sharetype) { in zfs_ioc_share()
5781 (uintptr_t)zc->zc_share.z_exportdata)) in zfs_ioc_share()
5787 (uintptr_t)zc->zc_share.z_exportdata, in zfs_ioc_share()
5788 zc->zc_share.z_sharetype == ZFS_SHARE_SMB ? in zfs_ioc_share()
5795 opcode = (zc->zc_share.z_sharetype == ZFS_SHARE_NFS || in zfs_ioc_share()
5796 zc->zc_share.z_sharetype == ZFS_SHARE_SMB) ? in zfs_ioc_share()
5803 (void *)(uintptr_t)zc->zc_share.z_sharedata, in zfs_ioc_share()
5804 zc->zc_share.z_sharemax); in zfs_ioc_share()
5823 zfs_ioc_next_obj(zfs_cmd_t *zc) in zfs_ioc_next_obj() argument
5828 error = dmu_objset_hold(zc->zc_name, FTAG, &os); in zfs_ioc_next_obj()
5832 error = dmu_object_next(os, &zc->zc_obj, B_FALSE, in zfs_ioc_next_obj()
5849 zfs_ioc_tmp_snapshot(zfs_cmd_t *zc) in zfs_ioc_tmp_snapshot() argument
5856 error = zfs_onexit_fd_hold(zc->zc_cleanup_fd, &minor); in zfs_ioc_tmp_snapshot()
5860 snap_name = kmem_asprintf("%s-%016llx", zc->zc_value, in zfs_ioc_tmp_snapshot()
5862 hold_name = kmem_asprintf("%%%s", zc->zc_value); in zfs_ioc_tmp_snapshot()
5864 error = dsl_dataset_snapshot_tmp(zc->zc_name, snap_name, minor, in zfs_ioc_tmp_snapshot()
5867 (void) strcpy(zc->zc_value, snap_name); in zfs_ioc_tmp_snapshot()
5870 zfs_onexit_fd_rele(zc->zc_cleanup_fd); in zfs_ioc_tmp_snapshot()
5884 zfs_ioc_diff(zfs_cmd_t *zc) in zfs_ioc_diff() argument
5890 fp = getf(zc->zc_cookie); in zfs_ioc_diff()
5896 error = dmu_diff(zc->zc_name, zc->zc_value, fp->f_vnode, &off); in zfs_ioc_diff()
5900 releasef(zc->zc_cookie); in zfs_ioc_diff()
5911 zap_cursor_t zc; in zfs_smb_acl_purge() local
5916 for (zap_cursor_init(&zc, zfsvfs->z_os, dzp->z_id); in zfs_smb_acl_purge()
5917 (error = zap_cursor_retrieve(&zc, &zap)) == 0; in zfs_smb_acl_purge()
5918 zap_cursor_advance(&zc)) { in zfs_smb_acl_purge()
5923 zap_cursor_fini(&zc); in zfs_smb_acl_purge()
5928 zfs_ioc_smb_acl(zfs_cmd_t *zc) in zfs_ioc_smb_acl() argument
5941 if ((error = lookupname(zc->zc_value, UIO_SYSSPACE, in zfs_ioc_smb_acl()
5949 zc->zc_name) != 0)) { in zfs_ioc_smb_acl()
5992 switch (zc->zc_cookie) { in zfs_ioc_smb_acl()
6005 error = VOP_CREATE(ZTOV(sharedir), zc->zc_string, in zfs_ioc_smb_acl()
6012 error = VOP_REMOVE(ZTOV(sharedir), zc->zc_string, kcred, in zfs_ioc_smb_acl()
6017 if ((error = get_nvlist(zc->zc_nvlist_src, in zfs_ioc_smb_acl()
6018 zc->zc_nvlist_src_size, zc->zc_iflags, &nvlist)) != 0) { in zfs_ioc_smb_acl()
6160 zfs_ioc_space_written(zfs_cmd_t *zc) in zfs_ioc_space_written() argument
6166 error = dsl_pool_hold(zc->zc_name, FTAG, &dp); in zfs_ioc_space_written()
6169 error = dsl_dataset_hold(dp, zc->zc_name, FTAG, &new); in zfs_ioc_space_written()
6174 error = dsl_dataset_hold(dp, zc->zc_value, FTAG, &old); in zfs_ioc_space_written()
6181 error = dsl_dataset_space_written(old, new, &zc->zc_cookie, in zfs_ioc_space_written()
6182 &zc->zc_objset_type, &zc->zc_perm_action); in zfs_ioc_space_written()
7188 zfs_cmd_t *zc; in zfsdev_ioctl() local
7214 zc = kmem_zalloc(sizeof (zfs_cmd_t), KM_SLEEP); in zfsdev_ioctl()
7216 error = ddi_copyin((void *)arg, zc, sizeof (zfs_cmd_t), flag); in zfsdev_ioctl()
7222 zc->zc_iflags = flag & FKIOCTL; in zfsdev_ioctl()
7223 if (zc->zc_nvlist_src_size != 0) { in zfsdev_ioctl()
7224 error = get_nvlist(zc->zc_nvlist_src, zc->zc_nvlist_src_size, in zfsdev_ioctl()
7225 zc->zc_iflags, &innvl); in zfsdev_ioctl()
7234 zc->zc_name[sizeof (zc->zc_name) - 1] = '\0'; in zfsdev_ioctl()
7237 if (pool_namecheck(zc->zc_name, NULL, NULL) != 0) in zfsdev_ioctl()
7240 error = pool_status_check(zc->zc_name, in zfsdev_ioctl()
7245 if (dataset_namecheck(zc->zc_name, NULL, NULL) != 0) in zfsdev_ioctl()
7248 error = pool_status_check(zc->zc_name, in zfsdev_ioctl()
7271 error = vec->zvec_secpolicy(zc, innvl, cr); in zfsdev_ioctl()
7277 len = strcspn(zc->zc_name, "/@#") + 1; in zfsdev_ioctl()
7279 (void) strlcpy(saved_poolname, zc->zc_name, len); in zfsdev_ioctl()
7304 error = vec->zvec_func(zc->zc_name, innvl, outnvl); in zfsdev_ioctl()
7314 spa_open(zc->zc_name, &spa, FTAG) == 0) { in zfsdev_ioctl()
7328 if (!nvlist_empty(outnvl) || zc->zc_nvlist_dst_size != 0) { in zfsdev_ioctl()
7332 zc->zc_nvlist_dst_size); in zfsdev_ioctl()
7335 puterror = put_nvlist(zc, outnvl); in zfsdev_ioctl()
7343 error = vec->zvec_legacy_func(zc); in zfsdev_ioctl()
7348 rc = ddi_copyout(zc, (void *)arg, sizeof (zfs_cmd_t), flag); in zfsdev_ioctl()
7361 kmem_free(zc, sizeof (zfs_cmd_t)); in zfsdev_ioctl()