usr/src/uts/common/fs/zfs/zfs_ioctl.c
changeset 11181 daeb45eeb9fb
parent 11147 74e8c05021f1
child 11185 f0c31008e395
equal deleted inserted replaced
11180:b50e2b4003cf 11181:daeb45eeb9fb
  1922 zfs_set_prop_nvlist(const char *dsname, zprop_source_t source, nvlist_t *nvl,
  1922 zfs_set_prop_nvlist(const char *dsname, zprop_source_t source, nvlist_t *nvl,
  1923     nvlist_t **errlist)
  1923     nvlist_t **errlist)
  1924 {
  1924 {
  1925 	nvpair_t *pair;
  1925 	nvpair_t *pair;
  1926 	nvpair_t *propval;
  1926 	nvpair_t *propval;
  1927 	int err = 0;
       
  1928 	int rv = 0;
  1927 	int rv = 0;
  1929 	uint64_t intval;
  1928 	uint64_t intval;
  1930 	char *strval;
  1929 	char *strval;
  1931 	nvlist_t *genericnvl;
  1930 	nvlist_t *genericnvl;
  1932 	nvlist_t *errors;
  1931 	nvlist_t *errors;
  1939 retry:
  1938 retry:
  1940 	pair = NULL;
  1939 	pair = NULL;
  1941 	while ((pair = nvlist_next_nvpair(nvl, pair)) != NULL) {
  1940 	while ((pair = nvlist_next_nvpair(nvl, pair)) != NULL) {
  1942 		const char *propname = nvpair_name(pair);
  1941 		const char *propname = nvpair_name(pair);
  1943 		zfs_prop_t prop = zfs_name_to_prop(propname);
  1942 		zfs_prop_t prop = zfs_name_to_prop(propname);
       
  1943 		int err = 0;
  1944 
  1944 
  1945 		/* decode the property value */
  1945 		/* decode the property value */
  1946 		propval = pair;
  1946 		propval = pair;
  1947 		if (nvpair_type(pair) == DATA_TYPE_NVLIST) {
  1947 		if (nvpair_type(pair) == DATA_TYPE_NVLIST) {
  1948 			nvlist_t *attrs;
  1948 			nvlist_t *attrs;
  2029 		 * can, so try setting them individually.
  2029 		 * can, so try setting them individually.
  2030 		 */
  2030 		 */
  2031 		pair = NULL;
  2031 		pair = NULL;
  2032 		while ((pair = nvlist_next_nvpair(genericnvl, pair)) != NULL) {
  2032 		while ((pair = nvlist_next_nvpair(genericnvl, pair)) != NULL) {
  2033 			const char *propname = nvpair_name(pair);
  2033 			const char *propname = nvpair_name(pair);
       
  2034 			int err = 0;
  2034 
  2035 
  2035 			propval = pair;
  2036 			propval = pair;
  2036 			if (nvpair_type(pair) == DATA_TYPE_NVLIST) {
  2037 			if (nvpair_type(pair) == DATA_TYPE_NVLIST) {
  2037 				nvlist_t *attrs;
  2038 				nvlist_t *attrs;
  2038 				VERIFY(nvpair_value_nvlist(pair, &attrs) == 0);
  2039 				VERIFY(nvpair_value_nvlist(pair, &attrs) == 0);