annotate usr/src/uts/common/fs/zfs/sys/dmu_objset.h @ 13743:95aba6e49b9f

2882 implement libzfs_core 2883 changing "canmount" property to "on" should not always remount dataset 2900 "zfs snapshot" should be able to create multiple, arbitrary snapshots at once Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Chris Siden <christopher.siden@delphix.com> Reviewed by: Garrett D'Amore <garrett@damore.org> Reviewed by: Bill Pijewski <wdp@joyent.com> Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com> Approved by: Eric Schrock <Eric.Schrock@delphix.com>
author Matthew Ahrens <mahrens@delphix.com>
date Sat, 30 Jun 2012 13:00:47 -0700
parents 8c712bbb18ea
children 6da32a929222
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
1 /*
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
2 * CDDL HEADER START
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
3 *
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
4 * The contents of this file are subject to the terms of the
1544
938876158511 PSARC 2006/077 zpool clear
eschrock
parents: 789
diff changeset
5 * Common Development and Distribution License (the "License").
938876158511 PSARC 2006/077 zpool clear
eschrock
parents: 789
diff changeset
6 * You may not use this file except in compliance with the License.
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
7 *
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
9 * or http://www.opensolaris.org/os/licensing.
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
10 * See the License for the specific language governing permissions
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
11 * and limitations under the License.
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
12 *
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
13 * When distributing Covered Code, include this CDDL HEADER in each
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
15 * If applicable, add the following below this CDDL HEADER, with the
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
16 * fields enclosed by brackets "[]" replaced with your own identifying
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
17 * information: Portions Copyright [yyyy] [name of copyright owner]
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
18 *
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
19 * CDDL HEADER END
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
20 */
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
21 /*
12178
93ec1371f750 6939983 assertion failed: zap_count(os, DMU_USERUSED_OBJECT, &count) != 0||count == 0, in dsl_dataset.c
Mark Shellenbaum <Mark.Shellenbaum@Sun.COM>
parents: 11935
diff changeset
22 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
13743
95aba6e49b9f 2882 implement libzfs_core
Matthew Ahrens <mahrens@delphix.com>
parents: 13055
diff changeset
23 * Copyright (c) 2012 by Delphix. All rights reserved.
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
24 */
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
25
12294
2a74b443e6b1 PSARC/2010/108 zil synchronicity
Mark J Musante <Mark.Musante@Sun.COM>
parents: 12178
diff changeset
26 /* Portions Copyright 2010 Robert Milkowski */
2a74b443e6b1 PSARC/2010/108 zil synchronicity
Mark J Musante <Mark.Musante@Sun.COM>
parents: 12178
diff changeset
27
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
28 #ifndef _SYS_DMU_OBJSET_H
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
29 #define _SYS_DMU_OBJSET_H
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
30
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
31 #include <sys/spa.h>
3547
e396e0a440b1 6512391 DMU should leverage ZIO dependencies to achieve greater parallelism
maybee
parents: 2885
diff changeset
32 #include <sys/arc.h>
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
33 #include <sys/txg.h>
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
34 #include <sys/zfs_context.h>
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
35 #include <sys/dnode.h>
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
36 #include <sys/zio.h>
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
37 #include <sys/zil.h>
11935
538c866aaac6 6716117 ZFS needs native system attribute infrastructure
Mark Shellenbaum <Mark.Shellenbaum@Sun.COM>
parents: 11209
diff changeset
38 #include <sys/sa.h>
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
39
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
40 #ifdef __cplusplus
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
41 extern "C" {
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
42 #endif
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
43
12684
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
44 extern krwlock_t os_lock;
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
45
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
46 struct dsl_dataset;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
47 struct dmu_tx;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
48
9396
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
49 #define OBJSET_PHYS_SIZE 2048
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
50 #define OBJSET_OLD_PHYS_SIZE 1024
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
51
12296
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 12294
diff changeset
52 #define OBJSET_BUF_HAS_USERUSED(buf) \
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 12294
diff changeset
53 (arc_buf_size(buf) > OBJSET_OLD_PHYS_SIZE)
7cf402a7f374 6675946 'zpool status' should show the progress of resilvering for individual disk.
Lin Ling <Lin.Ling@Sun.COM>
parents: 12294
diff changeset
54
9396
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
55 #define OBJSET_FLAG_USERACCOUNTING_COMPLETE (1ULL<<0)
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
56
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
57 typedef struct objset_phys {
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
58 dnode_phys_t os_meta_dnode;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
59 zil_header_t os_zil_header;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
60 uint64_t os_type;
9396
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
61 uint64_t os_flags;
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
62 char os_pad[OBJSET_PHYS_SIZE - sizeof (dnode_phys_t)*3 -
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
63 sizeof (zil_header_t) - sizeof (uint64_t)*2];
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
64 dnode_phys_t os_userused_dnode;
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
65 dnode_phys_t os_groupused_dnode;
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
66 } objset_phys_t;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
67
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
68 struct objset {
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
69 /* Immutable: */
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
70 struct dsl_dataset *os_dsl_dataset;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
71 spa_t *os_spa;
3547
e396e0a440b1 6512391 DMU should leverage ZIO dependencies to achieve greater parallelism
maybee
parents: 2885
diff changeset
72 arc_buf_t *os_phys_buf;
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
73 objset_phys_t *os_phys;
12684
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
74 /*
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
75 * The following "special" dnodes have no parent and are exempt from
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
76 * dnode_move(), but they root their descendents in this objset using
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
77 * handles anyway, so that all access to dnodes from dbufs consistently
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
78 * uses handles.
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
79 */
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
80 dnode_handle_t os_meta_dnode;
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
81 dnode_handle_t os_userused_dnode;
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
82 dnode_handle_t os_groupused_dnode;
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
83 zilog_t *os_zil;
10922
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
84
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
85 /* can change, under dsl_dir's locks: */
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
86 uint8_t os_checksum;
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
87 uint8_t os_compress;
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
88 uint8_t os_copies;
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
89 uint8_t os_dedup_checksum;
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
90 uint8_t os_dedup_verify;
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
91 uint8_t os_logbias;
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
92 uint8_t os_primary_cache;
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
93 uint8_t os_secondary_cache;
12294
2a74b443e6b1 PSARC/2010/108 zil synchronicity
Mark J Musante <Mark.Musante@Sun.COM>
parents: 12178
diff changeset
94 uint8_t os_sync;
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
95
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
96 /* no lock needed: */
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
97 struct dmu_tx *os_synctx; /* XXX sketchy */
3547
e396e0a440b1 6512391 DMU should leverage ZIO dependencies to achieve greater parallelism
maybee
parents: 2885
diff changeset
98 blkptr_t *os_rootbp;
7046
361307ae060d 6343667 scrub/resilver has to start over when a snapshot is taken
ahrens
parents: 6492
diff changeset
99 zil_header_t os_zil_header;
9396
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
100 list_t os_synced_dnodes;
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
101 uint64_t os_flags;
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
102
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
103 /* Protected by os_obj_lock */
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
104 kmutex_t os_obj_lock;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
105 uint64_t os_obj_next;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
106
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
107 /* Protected by os_lock */
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
108 kmutex_t os_lock;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
109 list_t os_dirty_dnodes[TXG_SIZE];
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
110 list_t os_free_dnodes[TXG_SIZE];
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
111 list_t os_dnodes;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
112 list_t os_downgraded_dbufs;
5326
6752aa2bd5bc 6425096 want online 'zfs recv' (read only and read/write)
ek110237
parents: 4944
diff changeset
113
6752aa2bd5bc 6425096 want online 'zfs recv' (read only and read/write)
ek110237
parents: 4944
diff changeset
114 /* stuff we store for the user */
6752aa2bd5bc 6425096 want online 'zfs recv' (read only and read/write)
ek110237
parents: 4944
diff changeset
115 kmutex_t os_user_ptr_lock;
6752aa2bd5bc 6425096 want online 'zfs recv' (read only and read/write)
ek110237
parents: 4944
diff changeset
116 void *os_user_ptr;
11935
538c866aaac6 6716117 ZFS needs native system attribute infrastructure
Mark Shellenbaum <Mark.Shellenbaum@Sun.COM>
parents: 11209
diff changeset
117
538c866aaac6 6716117 ZFS needs native system attribute infrastructure
Mark Shellenbaum <Mark.Shellenbaum@Sun.COM>
parents: 11209
diff changeset
118 /* SA layout/attribute registration */
538c866aaac6 6716117 ZFS needs native system attribute infrastructure
Mark Shellenbaum <Mark.Shellenbaum@Sun.COM>
parents: 11209
diff changeset
119 sa_os_t *os_sa;
10298
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
120 };
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
121
10922
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
122 #define DMU_META_OBJSET 0
1544
938876158511 PSARC 2006/077 zpool clear
eschrock
parents: 789
diff changeset
123 #define DMU_META_DNODE_OBJECT 0
9396
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
124 #define DMU_OBJECT_IS_SPECIAL(obj) ((int64_t)(obj) <= 0)
12684
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
125 #define DMU_META_DNODE(os) ((os)->os_meta_dnode.dnh_dnode)
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
126 #define DMU_USERUSED_DNODE(os) ((os)->os_userused_dnode.dnh_dnode)
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
127 #define DMU_GROUPUSED_DNODE(os) ((os)->os_groupused_dnode.dnh_dnode)
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
128
7237
f47d41541b14 PSARC 2008/393 zfs primarycache and secondarycache properties
ek110237
parents: 7046
diff changeset
129 #define DMU_OS_IS_L2CACHEABLE(os) \
f47d41541b14 PSARC 2008/393 zfs primarycache and secondarycache properties
ek110237
parents: 7046
diff changeset
130 ((os)->os_secondary_cache == ZFS_CACHE_ALL || \
f47d41541b14 PSARC 2008/393 zfs primarycache and secondarycache properties
ek110237
parents: 7046
diff changeset
131 (os)->os_secondary_cache == ZFS_CACHE_METADATA)
f47d41541b14 PSARC 2008/393 zfs primarycache and secondarycache properties
ek110237
parents: 7046
diff changeset
132
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
133 /* called from zpl */
10298
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
134 int dmu_objset_hold(const char *name, void *tag, objset_t **osp);
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
135 int dmu_objset_own(const char *name, dmu_objset_type_t type,
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
136 boolean_t readonly, void *tag, objset_t **osp);
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
137 void dmu_objset_rele(objset_t *os, void *tag);
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
138 void dmu_objset_disown(objset_t *os, void *tag);
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
139 int dmu_objset_from_ds(struct dsl_dataset *ds, objset_t **osp);
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
140
2885
c0259887ebbc 6460059 zfs destroy <snapshot> leaves behind kruft
ahrens
parents: 2199
diff changeset
141 void dmu_objset_stats(objset_t *os, nvlist_t *nv);
c0259887ebbc 6460059 zfs destroy <snapshot> leaves behind kruft
ahrens
parents: 2199
diff changeset
142 void dmu_objset_fast_stat(objset_t *os, dmu_objset_stats_t *stat);
c0259887ebbc 6460059 zfs destroy <snapshot> leaves behind kruft
ahrens
parents: 2199
diff changeset
143 void dmu_objset_space(objset_t *os, uint64_t *refdbytesp, uint64_t *availbytesp,
c0259887ebbc 6460059 zfs destroy <snapshot> leaves behind kruft
ahrens
parents: 2199
diff changeset
144 uint64_t *usedobjsp, uint64_t *availobjsp);
c0259887ebbc 6460059 zfs destroy <snapshot> leaves behind kruft
ahrens
parents: 2199
diff changeset
145 uint64_t dmu_objset_fsid_guid(objset_t *os);
7046
361307ae060d 6343667 scrub/resilver has to start over when a snapshot is taken
ahrens
parents: 6492
diff changeset
146 int dmu_objset_find_spa(spa_t *spa, const char *name,
361307ae060d 6343667 scrub/resilver has to start over when a snapshot is taken
ahrens
parents: 6492
diff changeset
147 int func(spa_t *, uint64_t, const char *, void *), void *arg, int flags);
11209
462283cb4096 6905188 panic: kernel heap corruption when doing "zfs rename -r"
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10922
diff changeset
148 int dmu_objset_prefetch(const char *name, void *arg);
4944
96d96f8de974 6569719 panic dangling dbufs (dn=ffffffff28814d30, dbuf=ffffffff20756008)
maybee
parents: 4787
diff changeset
149 int dmu_objset_evict_dbufs(objset_t *os);
10373
bcf97ee54990 6395956 snapshot dir needs real c/mtime
Chris Kirby <chris.kirby@sun.com>
parents: 10310
diff changeset
150 timestruc_t dmu_objset_snap_cmtime(objset_t *os);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
151
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
152 /* called from dsl */
10298
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
153 void dmu_objset_sync(objset_t *os, zio_t *zio, dmu_tx_t *tx);
10922
e2081f502306 PSARC 2009/571 ZFS Deduplication Properties
Jeff Bonwick <Jeff.Bonwick@Sun.COM>
parents: 10373
diff changeset
154 boolean_t dmu_objset_is_dirty(objset_t *os, uint64_t txg);
12722
0cc41f673f9d 6937998 txg_wait_synced() is called when unmounting zfs snapshots
Sanjeev Bagewadi <Sanjeev.Bagewadi@Sun.COM>
parents: 12684
diff changeset
155 boolean_t dmu_objset_is_dirty_anywhere(objset_t *os);
10298
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
156 objset_t *dmu_objset_create_impl(spa_t *spa, struct dsl_dataset *ds,
3547
e396e0a440b1 6512391 DMU should leverage ZIO dependencies to achieve greater parallelism
maybee
parents: 2885
diff changeset
157 blkptr_t *bp, dmu_objset_type_t type, dmu_tx_t *tx);
1544
938876158511 PSARC 2006/077 zpool clear
eschrock
parents: 789
diff changeset
158 int dmu_objset_open_impl(spa_t *spa, struct dsl_dataset *ds, blkptr_t *bp,
10298
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
159 objset_t **osp);
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
160 void dmu_objset_evict(objset_t *os);
11935
538c866aaac6 6716117 ZFS needs native system attribute infrastructure
Mark Shellenbaum <Mark.Shellenbaum@Sun.COM>
parents: 11209
diff changeset
161 void dmu_objset_do_userquota_updates(objset_t *os, dmu_tx_t *tx);
12178
93ec1371f750 6939983 assertion failed: zap_count(os, DMU_USERUSED_OBJECT, &count) != 0||count == 0, in dsl_dataset.c
Mark Shellenbaum <Mark.Shellenbaum@Sun.COM>
parents: 11935
diff changeset
162 void dmu_objset_userquota_get_ids(dnode_t *dn, boolean_t before, dmu_tx_t *tx);
10298
a0d52501437c 6860996 %temporary clones are not automatically destroyed on error
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 10272
diff changeset
163 boolean_t dmu_objset_userused_enabled(objset_t *os);
9396
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
164 int dmu_objset_userspace_upgrade(objset_t *os);
f41cf682d0d3 PSARC/2009/204 ZFS user/group quotas & space accounting
Matthew Ahrens <Matthew.Ahrens@Sun.COM>
parents: 9355
diff changeset
165 boolean_t dmu_objset_userspace_present(objset_t *os);
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
166
12684
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
167 void dmu_objset_init(void);
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
168 void dmu_objset_fini(void);
397e44ebb8a9 6710343 dnode cache should register a dnode_move() callback to limit fragmentation
Tom Erickson <Tom.Erickson@Sun.COM>
parents: 12296
diff changeset
169
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
170 #ifdef __cplusplus
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
171 }
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
172 #endif
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
173
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents:
diff changeset
174 #endif /* _SYS_DMU_OBJSET_H */