dmu.c revision c717a56157ae0e6fca6a1e3689ae1edc385716a3
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * CDDL HEADER START
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * The contents of this file are subject to the terms of the
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * Common Development and Distribution License (the "License").
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * You may not use this file except in compliance with the License.
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * See the License for the specific language governing permissions
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * and limitations under the License.
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * When distributing Covered Code, include this CDDL HEADER in each
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * If applicable, add the following below this CDDL HEADER, with the
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * fields enclosed by brackets "[]" replaced with your own identifying
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * information: Portions Copyright [yyyy] [name of copyright owner]
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * CDDL HEADER END
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel * Use is subject to license terms.
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel#pragma ident "%Z%%M% %I% %E% SMI"
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmelconst dmu_object_type_info_t dmu_ot[DMU_OT_NUMTYPES] = {
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel { byteswap_uint64_array, TRUE, "packed nvlist size" },
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel { byteswap_uint64_array, TRUE, "bplist header" },
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel { byteswap_uint64_array, TRUE, "SPA space map header" },
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel { byteswap_uint64_array, TRUE, "SPA space map" },
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel { byteswap_uint64_array, TRUE, "ZIL intent log" },
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel { byteswap_uint64_array, TRUE, "DSL directory" },
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel { zap_byteswap, TRUE, "DSL directory child map"},
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel { byteswap_uint8_array, FALSE, "ZFS plain file" },
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel { byteswap_uint8_array, FALSE, "other uint8[]" },
5602294fda888d923d57a78bafdaf48ae6223deaDan Kimmel { byteswap_uint64_array, FALSE, "other uint64[]" },
int err;
if (err)
return (err);
if (err) {
return (err);
dmu_bonus_max(void)
return (DN_MAX_BONUSLEN);
if (err)
return (err);
int err;
for (i = 0; i < nblks; i++) {
return (EIO);
if (read) {
if (err) {
return (err);
if (read) {
for (i = 0; i < nblks; i++) {
if (err) {
return (err);
int err;
if (err)
return (err);
return (err);
int err;
return (err);
if (numbufs == 0)
for (i = 0; i < numbufs; i++) {
if (dbp[i])
if (zfs_prefetch_disable)
if (err != 0)
if (nblks != 0) {
for (i = 0; i < nblks; i++)
if (err)
return (err);
void *buf)
if (err)
return (err);
while (size > 0) {
int err;
if (err)
return (err);
for (i = 0; i < numbufs; i++) {
int tocpy;
int bufoff;
int numbufs, i;
if (size == 0)
for (i = 0; i < numbufs; i++) {
int tocpy;
int bufoff;
#ifdef _KERNEL
int numbufs, i;
int err = 0;
if (size == 0)
if (err)
return (err);
for (i = 0; i < numbufs; i++) {
int tocpy;
int bufoff;
if (err)
return (err);
int numbufs, i;
int err;
if (size == 0)
if (err)
return (err);
for (i = 0; i < numbufs; i++) {
int bufoff;
if (err)
return (err);
void *arg;
if (done)
int err;
return (EEXIST);
return (ENOENT);
return (EALREADY);
if (pio) {
return (err);
int err;
if (err)
return (err);
return (err);
ncopies++;
ncopies++;
ncopies++;
int i, err;
if (err)
return (err);
for (i = 0; i < TXG_SIZE; i++) {
if (i != TXG_SIZE) {
if (err)
return (err);
return (err);
if (err)
return (err);
for (i = 0; i < count; i++)
for (i = 0; i < count; i++)
for (i = 0; i < count; i++)
dmu_init(void)
dbuf_init();
dnode_init();
arc_init();
dmu_fini(void)
arc_fini();
dnode_fini();
dbuf_fini();