MCPcopy Create free account
hub / github.com/F-Stack/f-stack / abd_verify

Function abd_verify

freebsd/contrib/openzfs/module/zfs/abd.c:128–154  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

126}
127
128void
129abd_verify(abd_t *abd)
130{
131 ASSERT3U(abd->abd_size, >, 0);
132 ASSERT3U(abd->abd_size, <=, SPA_MAXBLOCKSIZE);
133 ASSERT3U(abd->abd_flags, ==, abd->abd_flags & (ABD_FLAG_LINEAR |
134 ABD_FLAG_OWNER | ABD_FLAG_META | ABD_FLAG_MULTI_ZONE |
135 ABD_FLAG_MULTI_CHUNK | ABD_FLAG_LINEAR_PAGE | ABD_FLAG_GANG |
136 ABD_FLAG_GANG_FREE | ABD_FLAG_ZEROS));
137 IMPLY(abd->abd_parent != NULL, !(abd->abd_flags & ABD_FLAG_OWNER));
138 IMPLY(abd->abd_flags & ABD_FLAG_META, abd->abd_flags & ABD_FLAG_OWNER);
139 if (abd_is_linear(abd)) {
140 ASSERT3P(ABD_LINEAR_BUF(abd), !=, NULL);
141 } else if (abd_is_gang(abd)) {
142 uint_t child_sizes = 0;
143 for (abd_t *cabd = list_head(&ABD_GANG(abd).abd_gang_chain);
144 cabd != NULL;
145 cabd = list_next(&ABD_GANG(abd).abd_gang_chain, cabd)) {
146 ASSERT(list_link_active(&cabd->abd_gang_link));
147 child_sizes += cabd->abd_size;
148 abd_verify(cabd);
149 }
150 ASSERT3U(abd->abd_size, ==, child_sizes);
151 } else {
152 abd_verify_scatter(abd);
153 }
154}
155
156uint_t
157abd_get_size(abd_t *abd)

Callers 15

abd_get_offset_scatterFunction · 0.85
abd_iter_initFunction · 0.85
abd_get_offset_scatterFunction · 0.85
abd_iter_initFunction · 0.85
abd_get_sizeFunction · 0.85
abd_putFunction · 0.85
abd_freeFunction · 0.85
abd_gang_add_gangFunction · 0.85
abd_get_offset_implFunction · 0.85
abd_to_bufFunction · 0.85
abd_borrow_bufFunction · 0.85
abd_return_bufFunction · 0.85

Calls 6

abd_is_linearFunction · 0.85
abd_is_gangFunction · 0.85
list_headFunction · 0.50
list_nextFunction · 0.50
list_link_activeFunction · 0.50
abd_verify_scatterFunction · 0.50

Tested by

no test coverage detected