Print this page
NEX-16623 Ability to set properties for multiple datasets/snapshots during single sync-round
Reviewed by: Joyce McIntosh <joyce.mcintosh@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
NEX-5987 need to change ssm wearout threshold to 90%
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
Reviewed by: Gordon Ross <gwr@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
NEX-5925 KRRP: Incorrect collecting of snap-props causes errors during recv
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
Reviewed by: Alexey Komarov <alexey.komarov@nexenta.com>
Reviewed by: Alex Aizman <alex.aizman@nexenta.com>
6160 /usr/lib/fs/zfs/bootinstall should use bootadm
Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
Reviewed by: Adam Števko <adam.stevko@gmail.com>
Reviewed by: Josef Sipek <jeffpc@josefsipek.net>
Approved by: Richard Lowe <richlowe@richlowe.net>
4185 add new cryptographic checksums to ZFS: SHA-512, Skein, Edon-R (NULL is not an int)
6171 dsl_prop_unregister() slows down dataset eviction.
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Fixup merge results
re #12585 rb4049 ZFS++ work port - refactoring to improve separation of open/closed code, bug fixes, performance improvements - open code
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/uts/common/fs/zfs/sys/dsl_prop.h
+++ new/usr/src/uts/common/fs/zfs/sys/dsl_prop.h
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License (the "License").
6 6 * You may not use this file except in compliance with the License.
7 7 *
8 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 * or http://www.opensolaris.org/os/licensing.
10 10 * See the License for the specific language governing permissions
11 11 * and limitations under the License.
12 12 *
13 13 * When distributing Covered Code, include this CDDL HEADER in each
|
↓ open down ↓ |
13 lines elided |
↑ open up ↑ |
14 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 * If applicable, add the following below this CDDL HEADER, with the
16 16 * fields enclosed by brackets "[]" replaced with your own identifying
17 17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 18 *
19 19 * CDDL HEADER END
20 20 */
21 21 /*
22 22 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
23 23 * Copyright (c) 2012 by Delphix. All rights reserved.
24 + * Copyright 2016 Nexenta Systems, Inc. All rights reserved.
24 25 */
25 26
26 27 #ifndef _SYS_DSL_PROP_H
27 28 #define _SYS_DSL_PROP_H
28 29
29 30 #include <sys/dmu.h>
30 31 #include <sys/dsl_pool.h>
31 32 #include <sys/zfs_context.h>
32 33 #include <sys/dsl_synctask.h>
33 34
34 35 #ifdef __cplusplus
35 36 extern "C" {
36 37 #endif
37 38
39 +#define ZPROP_INHERIT_SUFFIX "$inherit"
40 +#define ZPROP_RECVD_SUFFIX "$recvd"
41 +
38 42 struct dsl_dataset;
39 43 struct dsl_dir;
40 44
41 45 /* The callback func may not call into the DMU or DSL! */
42 46 typedef void (dsl_prop_changed_cb_t)(void *arg, uint64_t newval);
43 47
44 48 typedef struct dsl_prop_record {
45 49 list_node_t pr_node; /* link on dd_props */
46 50 const char *pr_propname;
47 51 list_t pr_cbs;
48 52 } dsl_prop_record_t;
49 53
50 54 typedef struct dsl_prop_cb_record {
51 55 list_node_t cbr_pr_node; /* link on pr_cbs */
52 56 list_node_t cbr_ds_node; /* link on ds_prop_cbs */
53 57 dsl_prop_record_t *cbr_pr;
54 58 struct dsl_dataset *cbr_ds;
55 59 dsl_prop_changed_cb_t *cbr_func;
56 60 void *cbr_arg;
57 61 } dsl_prop_cb_record_t;
58 62
59 63 typedef struct dsl_props_arg {
60 64 nvlist_t *pa_props;
61 65 zprop_source_t pa_source;
62 66 } dsl_props_arg_t;
63 67
64 68 void dsl_prop_init(dsl_dir_t *dd);
65 69 void dsl_prop_fini(dsl_dir_t *dd);
66 70 int dsl_prop_register(struct dsl_dataset *ds, const char *propname,
67 71 dsl_prop_changed_cb_t *callback, void *cbarg);
68 72 void dsl_prop_unregister_all(struct dsl_dataset *ds, void *cbarg);
69 73 void dsl_prop_notify_all(struct dsl_dir *dd);
70 74 boolean_t dsl_prop_hascb(struct dsl_dataset *ds);
71 75
72 76 int dsl_prop_get(const char *ddname, const char *propname,
73 77 int intsz, int numints, void *buf, char *setpoint);
74 78 int dsl_prop_get_integer(const char *ddname, const char *propname,
75 79 uint64_t *valuep, char *setpoint);
|
↓ open down ↓ |
28 lines elided |
↑ open up ↑ |
76 80 int dsl_prop_get_all(objset_t *os, nvlist_t **nvp);
77 81 int dsl_prop_get_received(const char *dsname, nvlist_t **nvp);
78 82 int dsl_prop_get_ds(struct dsl_dataset *ds, const char *propname,
79 83 int intsz, int numints, void *buf, char *setpoint);
80 84 int dsl_prop_get_int_ds(struct dsl_dataset *ds, const char *propname,
81 85 uint64_t *valuep);
82 86 int dsl_prop_get_dd(struct dsl_dir *dd, const char *propname,
83 87 int intsz, int numints, void *buf, char *setpoint,
84 88 boolean_t snapshot);
85 89
90 +int dsl_props_set_mds(const char *pool_name, nvlist_t *dss_props,
91 + size_t num_props);
92 +
86 93 void dsl_props_set_sync_impl(struct dsl_dataset *ds, zprop_source_t source,
87 94 nvlist_t *props, dmu_tx_t *tx);
88 95 void dsl_prop_set_sync_impl(struct dsl_dataset *ds, const char *propname,
89 96 zprop_source_t source, int intsz, int numints, const void *value,
90 97 dmu_tx_t *tx);
91 98 int dsl_props_set(const char *dsname, zprop_source_t source, nvlist_t *nvl);
92 99 int dsl_prop_set_int(const char *dsname, const char *propname,
93 100 zprop_source_t source, uint64_t value);
94 101 int dsl_prop_set_string(const char *dsname, const char *propname,
95 102 zprop_source_t source, const char *value);
96 103 int dsl_prop_inherit(const char *dsname, const char *propname,
97 104 zprop_source_t source);
98 105
99 106 int dsl_prop_predict(dsl_dir_t *dd, const char *propname,
100 107 zprop_source_t source, uint64_t value, uint64_t *newvalp);
101 108
102 109 /* flag first receive on or after SPA_VERSION_RECVD_PROPS */
103 110 boolean_t dsl_prop_get_hasrecvd(const char *dsname);
104 111 int dsl_prop_set_hasrecvd(const char *dsname);
105 112 void dsl_prop_unset_hasrecvd(const char *dsname);
106 113
107 114 void dsl_prop_nvlist_add_uint64(nvlist_t *nv, zfs_prop_t prop, uint64_t value);
108 115 void dsl_prop_nvlist_add_string(nvlist_t *nv,
109 116 zfs_prop_t prop, const char *value);
110 117
111 118 #ifdef __cplusplus
112 119 }
113 120 #endif
114 121
115 122 #endif /* _SYS_DSL_PROP_H */
|
↓ open down ↓ |
20 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX