Add -p switch to "zpool get"
[zfs.git] / module / zfs / dsl_prop.c
index aa66b32..e44a948 100644 (file)
@@ -247,9 +247,9 @@ dsl_prop_register(dsl_dataset_t *ds, const char *propname,
                return (err);
        }
 
-       cbr = kmem_alloc(sizeof (dsl_prop_cb_record_t), KM_SLEEP);
+       cbr = kmem_alloc(sizeof (dsl_prop_cb_record_t), KM_PUSHPAGE);
        cbr->cbr_ds = ds;
-       cbr->cbr_propname = kmem_alloc(strlen(propname)+1, KM_SLEEP);
+       cbr->cbr_propname = kmem_alloc(strlen(propname)+1, KM_PUSHPAGE);
        (void) strcpy((char *)cbr->cbr_propname, propname);
        cbr->cbr_func = callback;
        cbr->cbr_arg = cbarg;
@@ -355,7 +355,7 @@ dsl_prop_predict_sync(dsl_dir_t *dd, dsl_prop_setarg_t *psa)
                        source = ZPROP_SRC_LOCAL;
        }
 
-       switch (source) {
+       switch ((int)source) {
        case ZPROP_SRC_NONE:
                /* Revert to the received value, if any. */
                err = zap_lookup(mos, zapobj, recvdstr, 8, 1,
@@ -413,6 +413,8 @@ dsl_prop_check_prediction(dsl_dir_t *dd, dsl_prop_setarg_t *psa)
                case ZFS_PROP_QUOTA:
                case ZFS_PROP_RESERVATION:
                        return;
+               default:
+                       break;
                }
        }
 
@@ -532,7 +534,7 @@ dsl_prop_changed_notify(dsl_pool_t *dp, uint64_t ddobj,
        }
        mutex_exit(&dd->dd_lock);
 
-       za = kmem_alloc(sizeof (zap_attribute_t), KM_SLEEP);
+       za = kmem_alloc(sizeof (zap_attribute_t), KM_PUSHPAGE);
        for (zap_cursor_init(&zc, mos,
            dd->dd_phys->dd_child_dir_zapobj);
            zap_cursor_retrieve(&zc, za) == 0;
@@ -592,7 +594,7 @@ dsl_prop_set_sync(void *arg1, void *arg2, dmu_tx_t *tx)
        inheritstr = kmem_asprintf("%s%s", propname, ZPROP_INHERIT_SUFFIX);
        recvdstr = kmem_asprintf("%s%s", propname, ZPROP_RECVD_SUFFIX);
 
-       switch (source) {
+       switch ((int)source) {
        case ZPROP_SRC_NONE:
                /*
                 * revert to received value, if any (inherit -S)
@@ -695,7 +697,7 @@ dsl_prop_set_sync(void *arg1, void *arg2, dmu_tx_t *tx)
                if (source == ZPROP_SRC_LOCAL) {
                        valstr = (char *)psa->psa_value;
                } else {
-                       tbuf = kmem_alloc(ZAP_MAXVALUELEN, KM_SLEEP);
+                       tbuf = kmem_alloc(ZAP_MAXVALUELEN, KM_PUSHPAGE);
                        if (dsl_prop_get_ds(ds, propname, 1,
                            ZAP_MAXVALUELEN, tbuf, NULL) == 0)
                                valstr = tbuf;
@@ -828,7 +830,7 @@ dsl_props_set(const char *dsname, zprop_source_t source, nvlist_t *props)
        dsl_props_arg_t pa;
        int err;
 
-       if (err = dsl_dataset_hold(dsname, FTAG, &ds))
+       if ((err = dsl_dataset_hold(dsname, FTAG, &ds)))
                return (err);
        /*
         * Do these checks before the syncfunc, since it can't fail.
@@ -1151,3 +1153,18 @@ dsl_prop_nvlist_add_string(nvlist_t *nv, zfs_prop_t prop, const char *value)
        VERIFY(nvlist_add_nvlist(nv, propname, propval) == 0);
        nvlist_free(propval);
 }
+
+#if defined(_KERNEL) && defined(HAVE_SPL)
+EXPORT_SYMBOL(dsl_prop_register);
+EXPORT_SYMBOL(dsl_prop_unregister);
+EXPORT_SYMBOL(dsl_prop_numcb);
+EXPORT_SYMBOL(dsl_prop_set);
+EXPORT_SYMBOL(dsl_prop_get);
+EXPORT_SYMBOL(dsl_prop_get_integer);
+EXPORT_SYMBOL(dsl_prop_get_all);
+EXPORT_SYMBOL(dsl_prop_get_received);
+EXPORT_SYMBOL(dsl_prop_get_ds);
+EXPORT_SYMBOL(dsl_prop_get_dd);
+EXPORT_SYMBOL(dsl_prop_nvlist_add_uint64);
+EXPORT_SYMBOL(dsl_prop_nvlist_add_string);
+#endif