Print this page
6536 zfs send: want a way to disable sending of free records
Reviewed by: Alexander Stetsenko <astetsenko@racktopsystems.com>
Reviewed by: Kim Shrier <kshrier@racktopsystems.com>


   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  */
  25 /*
  26  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  27  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.

  28  */
  29 
  30 #ifndef _SYS_DMU_IMPL_H
  31 #define _SYS_DMU_IMPL_H
  32 
  33 #include <sys/txg_impl.h>
  34 #include <sys/zio.h>
  35 #include <sys/dnode.h>
  36 #include <sys/zfs_context.h>
  37 #include <sys/zfs_ioctl.h>
  38 
  39 #ifdef  __cplusplus
  40 extern "C" {
  41 #endif
  42 
  43 /*
  44  * This is the locking strategy for the DMU.  Numbers in parenthesis are
  45  * cases that use that lock order, referenced below:
  46  *
  47  * ARC is self-contained


 281         PENDING_FREEOBJECTS
 282 } dmu_pendop_t;
 283 
 284 typedef struct dmu_sendarg {
 285         list_node_t dsa_link;
 286         dmu_replay_record_t *dsa_drr;
 287         vnode_t *dsa_vp;
 288         int dsa_outfd;
 289         struct proc *dsa_proc;
 290         offset_t *dsa_off;
 291         objset_t *dsa_os;
 292         zio_cksum_t dsa_zc;
 293         uint64_t dsa_toguid;
 294         int dsa_err;
 295         dmu_pendop_t dsa_pending_op;
 296         uint64_t dsa_featureflags;
 297         uint64_t dsa_last_data_object;
 298         uint64_t dsa_last_data_offset;
 299         uint64_t dsa_resume_object;
 300         uint64_t dsa_resume_offset;

 301 } dmu_sendarg_t;
 302 
 303 void dmu_object_zapify(objset_t *, uint64_t, dmu_object_type_t, dmu_tx_t *);
 304 void dmu_object_free_zapified(objset_t *, uint64_t, dmu_tx_t *);
 305 int dmu_buf_hold_noread(objset_t *, uint64_t, uint64_t,
 306     void *, dmu_buf_t **);
 307 
 308 #ifdef  __cplusplus
 309 }
 310 #endif
 311 
 312 #endif  /* _SYS_DMU_IMPL_H */


   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  */
  25 /*
  26  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  27  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
  28  * Copyright 2015 RackTop Systems.
  29  */
  30 
  31 #ifndef _SYS_DMU_IMPL_H
  32 #define _SYS_DMU_IMPL_H
  33 
  34 #include <sys/txg_impl.h>
  35 #include <sys/zio.h>
  36 #include <sys/dnode.h>
  37 #include <sys/zfs_context.h>
  38 #include <sys/zfs_ioctl.h>
  39 
  40 #ifdef  __cplusplus
  41 extern "C" {
  42 #endif
  43 
  44 /*
  45  * This is the locking strategy for the DMU.  Numbers in parenthesis are
  46  * cases that use that lock order, referenced below:
  47  *
  48  * ARC is self-contained


 282         PENDING_FREEOBJECTS
 283 } dmu_pendop_t;
 284 
 285 typedef struct dmu_sendarg {
 286         list_node_t dsa_link;
 287         dmu_replay_record_t *dsa_drr;
 288         vnode_t *dsa_vp;
 289         int dsa_outfd;
 290         struct proc *dsa_proc;
 291         offset_t *dsa_off;
 292         objset_t *dsa_os;
 293         zio_cksum_t dsa_zc;
 294         uint64_t dsa_toguid;
 295         int dsa_err;
 296         dmu_pendop_t dsa_pending_op;
 297         uint64_t dsa_featureflags;
 298         uint64_t dsa_last_data_object;
 299         uint64_t dsa_last_data_offset;
 300         uint64_t dsa_resume_object;
 301         uint64_t dsa_resume_offset;
 302         boolean_t dsa_skip_free;
 303 } dmu_sendarg_t;
 304 
 305 void dmu_object_zapify(objset_t *, uint64_t, dmu_object_type_t, dmu_tx_t *);
 306 void dmu_object_free_zapified(objset_t *, uint64_t, dmu_tx_t *);
 307 int dmu_buf_hold_noread(objset_t *, uint64_t, uint64_t,
 308     void *, dmu_buf_t **);
 309 
 310 #ifdef  __cplusplus
 311 }
 312 #endif
 313 
 314 #endif  /* _SYS_DMU_IMPL_H */