5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 * Copyright (c) 2012, Joyent, Inc. All rights reserved.
25 */
26
27 #ifndef _SYS_DMU_IMPL_H
28 #define _SYS_DMU_IMPL_H
29
30 #include <sys/txg_impl.h>
31 #include <sys/zio.h>
32 #include <sys/dnode.h>
33 #include <sys/zfs_context.h>
34 #include <sys/zfs_ioctl.h>
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
40 /*
41 * This is the locking strategy for the DMU. Numbers in parenthesis are
42 * cases that use that lock order, referenced below:
43 *
44 * ARC is self-contained
273 * DRR_FREEOBJECTS replay record.
274 */
275 typedef enum {
276 PENDING_NONE,
277 PENDING_FREE,
278 PENDING_FREEOBJECTS
279 } dmu_pendop_t;
280
281 typedef struct dmu_sendarg {
282 list_node_t dsa_link;
283 dmu_replay_record_t *dsa_drr;
284 vnode_t *dsa_vp;
285 int dsa_outfd;
286 struct proc *dsa_proc;
287 offset_t *dsa_off;
288 objset_t *dsa_os;
289 zio_cksum_t dsa_zc;
290 uint64_t dsa_toguid;
291 int dsa_err;
292 dmu_pendop_t dsa_pending_op;
293 } dmu_sendarg_t;
294
295
296 #ifdef __cplusplus
297 }
298 #endif
299
300 #endif /* _SYS_DMU_IMPL_H */
|
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 * Copyright (c) 2012, Joyent, Inc. All rights reserved.
25 * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
26 */
27
28 #ifndef _SYS_DMU_IMPL_H
29 #define _SYS_DMU_IMPL_H
30
31 #include <sys/txg_impl.h>
32 #include <sys/zio.h>
33 #include <sys/dnode.h>
34 #include <sys/zfs_context.h>
35 #include <sys/zfs_ioctl.h>
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41 /*
42 * This is the locking strategy for the DMU. Numbers in parenthesis are
43 * cases that use that lock order, referenced below:
44 *
45 * ARC is self-contained
274 * DRR_FREEOBJECTS replay record.
275 */
276 typedef enum {
277 PENDING_NONE,
278 PENDING_FREE,
279 PENDING_FREEOBJECTS
280 } dmu_pendop_t;
281
282 typedef struct dmu_sendarg {
283 list_node_t dsa_link;
284 dmu_replay_record_t *dsa_drr;
285 vnode_t *dsa_vp;
286 int dsa_outfd;
287 struct proc *dsa_proc;
288 offset_t *dsa_off;
289 objset_t *dsa_os;
290 zio_cksum_t dsa_zc;
291 uint64_t dsa_toguid;
292 int dsa_err;
293 dmu_pendop_t dsa_pending_op;
294 boolean_t sendsize;
295 } dmu_sendarg_t;
296
297
298 #ifdef __cplusplus
299 }
300 #endif
301
302 #endif /* _SYS_DMU_IMPL_H */
|