dmu_objset.c revision 9c3fd1216fa7fb02cfbc78a2518a686d54b48ab8
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * CDDL HEADER START
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * The contents of this file are subject to the terms of the
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * Common Development and Distribution License (the "License").
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * You may not use this file except in compliance with the License.
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * See the License for the specific language governing permissions
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * and limitations under the License.
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * When distributing Covered Code, include this CDDL HEADER in each
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * If applicable, add the following below this CDDL HEADER, with the
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * fields enclosed by brackets "[]" replaced with your own identifying
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * information: Portions Copyright [yyyy] [name of copyright owner]
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * CDDL HEADER END
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * Copyright (c) 2012, 2014 by Delphix. All rights reserved.
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * Copyright (c) 2013, Joyent, Inc. All rights reserved.
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * Copyright (c) 2014 Spectra Logic Corporation, All rights reserved.
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * Copyright (c) 2015, STRATO AG, Inc. All rights reserved.
int dmu_find_threads = 0;
dmu_objset_init(void)
dmu_objset_fini(void)
spa_t *
zilog_t *
int i, err;
if (err != 0) {
return (err);
* func returns, thus changing the checksum/compression from the
if (err == 0) {
if (err == 0) {
if (err == 0) {
if (err == 0) {
if (err == 0) {
if (err == 0) {
if (err == 0) {
if (err == 0) {
if (err == 0) {
if (needlock)
if (err != 0) {
return (err);
for (i = 0; i < TXG_SIZE; i++) {
int err = 0;
if (err == 0) {
return (err);
int err;
if (err != 0)
return (err);
if (err != 0) {
return (err);
if (err != 0) {
return (err);
int err;
if (err != 0) {
return (err);
int err;
if (err != 0)
return (err);
if (err != 0) {
return (err);
return (err);
int err;
if (err != 0)
return (err);
for (int t = 0; t < TXG_SIZE; t++)
if (ds)
objset_t *
levels++;
return (os);
typedef struct dmu_objset_create_arg {
const char *doca_name;
void *doca_userarg;
const char *tail;
int error;
if (error != 0)
return (error);
return (error);
const char *tail;
typedef struct dmu_objset_clone_arg {
const char *doca_clone;
const char *doca_origin;
const char *tail;
int error;
if (error != 0)
return (error);
if (error != 0) {
if (error != 0)
return (error);
const char *tail;
int err;
return (err);
if (newlist) {
int txgoff;
if (subtract)
int flags;
void *data;
return (data);
int error;
int rf = 0;
if (before) {
} else if (data) {
error = 0;
if (db)
if (have_spill) {
if (have_spill)
int err = 0;
int objerr;
if (objerr != 0)
if (objerr != 0) {
return (B_FALSE);
if (idp)
if (case_conflict)
if (idp)
typedef struct dmu_objset_find_ctx {
void *dc_arg;
int dc_flags;
int *dc_error;
int err = 0;
goto out;
if (err != 0)
goto out;
goto out;
sizeof (uint64_t));
if (err == 0) {
sizeof (uint64_t));
if (err != 0)
if (err != 0)
if (err != 0)
goto out;
if (err != 0)
goto out;
out:
if (err != 0) {
int error = 0;
int ntasks;
return (error);
if (ntasks == 0)
INT_MAX, 0);
return (error);
char *child;
int err;
if (err != 0) {
return (err);
sizeof (uint64_t));
if (err != 0)
if (err != 0) {
return (err);
if (err == 0) {
sizeof (uint64_t));
if (err != 0)
if (err != 0)
return (err);
int flags)
int error;
if (error != 0)
return (error);
return (error);