osd->od_prop_rdonly = !!newval;
}
+#ifdef HAVE_DMU_OBJECT_ALLOC_DNSIZE
static void osd_dnodesize_changed_cb(void *arg, uint64_t newval)
{
struct osd_device *osd = arg;
osd->od_dnsize = newval;
}
-
+#endif
/*
* This function unregisters all registered callbacks. It's harmless to
* unregister callbacks that were never registered so it is used to safely
osd_recordsize_changed_cb, o);
(void) dsl_prop_unregister(ds, zfs_prop_to_name(ZFS_PROP_READONLY),
osd_readonly_changed_cb, o);
+#ifdef HAVE_DMU_OBJECT_ALLOC_DNSIZE
(void) dsl_prop_unregister(ds, zfs_prop_to_name(ZFS_PROP_DNODESIZE),
- osd_readonly_changed_cb, o);
+ osd_dnodesize_changed_cb, o);
+#endif
if (o->arc_prune_cb != NULL) {
arc_remove_prune_callback(o->arc_prune_cb);
if (rc)
GOTO(err, rc);
+#ifdef HAVE_DMU_OBJECT_ALLOC_DNSIZE
rc = -dsl_prop_register(ds, zfs_prop_to_name(ZFS_PROP_DNODESIZE),
osd_dnodesize_changed_cb, o);
if (rc)
GOTO(err, rc);
+#endif
o->arc_prune_cb = arc_add_prune_callback(arc_prune_func, o);
err: