Print this page
NEX-9673 Add capability to replicate cloned datasets relative to origin
Reviewed by: Alex Deiter <alex.deiter@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
6358 A faulted pool with only unavailable vdevs triggers assertion failure in libzfs
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Andrew Stormont <andyjstormont@gmail.com>
Reviewed by: Serban Maduta <serban.maduta@gmail.com>
Approved by: Dan McDonald <danmcd@omniti.com>
6393 zfs receive a full send as a clone
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Approved by: Dan McDonald <danmcd@omniti.com>
2605 want to resume interrupted zfs send
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed by: Xin Li <delphij@freebsd.org>
Reviewed by: Arne Jansen <sensille@gmx.net>
Approved by: Dan McDonald <danmcd@omniti.com>
NEX-3558 KRRP Integration
Bug 10481 - Dry run option in 'zfs send' isn't the same as in NexentaStor 3.1

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/sys/dmu_impl.h
          +++ new/usr/src/uts/common/fs/zfs/sys/dmu_impl.h
↓ open down ↓ 13 lines elided ↑ open up ↑
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
  24      - */
  25      -/*
  26   24   * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  27   25   * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
       26 + * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
  28   27   */
  29   28  
  30   29  #ifndef _SYS_DMU_IMPL_H
  31   30  #define _SYS_DMU_IMPL_H
  32   31  
  33   32  #include <sys/txg_impl.h>
  34   33  #include <sys/zio.h>
  35   34  #include <sys/dnode.h>
  36   35  #include <sys/zfs_context.h>
  37   36  #include <sys/zfs_ioctl.h>
       37 +#include <sys/dmu_krrp.h>
  38   38  
  39   39  #ifdef  __cplusplus
  40   40  extern "C" {
  41   41  #endif
  42   42  
  43   43  /*
  44   44   * This is the locking strategy for the DMU.  Numbers in parenthesis are
  45   45   * cases that use that lock order, referenced below:
  46   46   *
  47   47   * ARC is self-contained
↓ open down ↓ 236 lines elided ↑ open up ↑
 284  284          dmu_replay_record_t *dsa_drr;
 285  285          vnode_t *dsa_vp;
 286  286          int dsa_outfd;
 287  287          struct proc *dsa_proc;
 288  288          offset_t *dsa_off;
 289  289          objset_t *dsa_os;
 290  290          zio_cksum_t dsa_zc;
 291  291          uint64_t dsa_toguid;
 292  292          int dsa_err;
 293  293          dmu_pendop_t dsa_pending_op;
      294 +        boolean_t sendsize;
 294  295          uint64_t dsa_featureflags;
 295  296          uint64_t dsa_last_data_object;
 296  297          uint64_t dsa_last_data_offset;
      298 +        dmu_krrp_task_t *dsa_krrp_task;
 297  299          uint64_t dsa_resume_object;
 298  300          uint64_t dsa_resume_offset;
 299  301          boolean_t dsa_sent_begin;
 300  302          boolean_t dsa_sent_end;
 301  303  } dmu_sendarg_t;
 302  304  
      305 +void *dmu_krrp_stream_init();
      306 +void dmu_krrp_stream_fini(void *handler);
      307 +int dmu_krrp_buffer_write(void *buf, int len,
      308 +    dmu_krrp_task_t *krrp_task);
      309 +int dmu_krrp_buffer_read(void *buf, int len,
      310 +    dmu_krrp_task_t *krrp_task);
      311 +void* dmu_krrp_init_send_task(void *args);
      312 +void* dmu_krrp_init_recv_task(void *args);
      313 +int dmu_krrp_fini_task(void *krrp_task_void);
      314 +int dmu_krrp_lend_send_buffer(void *krrp_task_void,
      315 +    kreplication_buffer_t *buffer);
      316 +int dmu_krrp_lend_recv_buffer(void *krrp_task_void,
      317 +    kreplication_buffer_t *buffer);
      318 +
 303  319  void dmu_object_zapify(objset_t *, uint64_t, dmu_object_type_t, dmu_tx_t *);
 304  320  void dmu_object_free_zapified(objset_t *, uint64_t, dmu_tx_t *);
 305  321  int dmu_buf_hold_noread(objset_t *, uint64_t, uint64_t,
 306  322      void *, dmu_buf_t **);
 307  323  
 308  324  #ifdef  __cplusplus
 309  325  }
 310  326  #endif
 311  327  
 312  328  #endif  /* _SYS_DMU_IMPL_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX