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
        
@@ -19,14 +19,13 @@
  * CDDL HEADER END
  */
 /*
  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
- */
-/*
  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  * Copyright (c) 2013, 2015 by Delphix. All rights reserved.
+ * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
  */
 
 #ifndef _SYS_DMU_IMPL_H
 #define _SYS_DMU_IMPL_H
 
@@ -33,10 +32,11 @@
 #include <sys/txg_impl.h>
 #include <sys/zio.h>
 #include <sys/dnode.h>
 #include <sys/zfs_context.h>
 #include <sys/zfs_ioctl.h>
+#include <sys/dmu_krrp.h>
 
 #ifdef  __cplusplus
 extern "C" {
 #endif
 
@@ -289,19 +289,35 @@
         objset_t *dsa_os;
         zio_cksum_t dsa_zc;
         uint64_t dsa_toguid;
         int dsa_err;
         dmu_pendop_t dsa_pending_op;
+        boolean_t sendsize;
         uint64_t dsa_featureflags;
         uint64_t dsa_last_data_object;
         uint64_t dsa_last_data_offset;
+        dmu_krrp_task_t *dsa_krrp_task;
         uint64_t dsa_resume_object;
         uint64_t dsa_resume_offset;
         boolean_t dsa_sent_begin;
         boolean_t dsa_sent_end;
 } dmu_sendarg_t;
 
+void *dmu_krrp_stream_init();
+void dmu_krrp_stream_fini(void *handler);
+int dmu_krrp_buffer_write(void *buf, int len,
+    dmu_krrp_task_t *krrp_task);
+int dmu_krrp_buffer_read(void *buf, int len,
+    dmu_krrp_task_t *krrp_task);
+void* dmu_krrp_init_send_task(void *args);
+void* dmu_krrp_init_recv_task(void *args);
+int dmu_krrp_fini_task(void *krrp_task_void);
+int dmu_krrp_lend_send_buffer(void *krrp_task_void,
+    kreplication_buffer_t *buffer);
+int dmu_krrp_lend_recv_buffer(void *krrp_task_void,
+    kreplication_buffer_t *buffer);
+
 void dmu_object_zapify(objset_t *, uint64_t, dmu_object_type_t, dmu_tx_t *);
 void dmu_object_free_zapified(objset_t *, uint64_t, dmu_tx_t *);
 int dmu_buf_hold_noread(objset_t *, uint64_t, uint64_t,
     void *, dmu_buf_t **);