Print this page
*** NO COMMENTS ***


   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 */