Print this page
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>
re #13850 Refactor ZFS config discovery IOCs to libzfs_core patterns
@@ -18,11 +18,11 @@
*
* CDDL HEADER END
*/
/*
- * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2014 by Delphix. All rights reserved.
* Copyright 2015 Joyent, Inc.
*/
@@ -100,11 +100,11 @@
#include "systable.h"
#include "proto.h"
void show_sigset(private_t *, long, const char *);
void show_ioctl(private_t *, int, long);
-void show_zfs_ioc(private_t *, long);
+void show_zfs_ioc(private_t *, long, int);
static void
mk_ctime(char *str, size_t maxsize, time_t value)
{
(void) strftime(str, maxsize, "%b %e %H:%M:%S %Z %Y",
@@ -1486,11 +1486,11 @@
show_audio_info(pri, offset);
break;
default:
if ((code & ~0xff) == ZFS_IOC) {
- show_zfs_ioc(pri, offset);
+ show_zfs_ioc(pri, offset, err);
break;
}
if (code & IOC_INOUT) {
const char *str = ioctldatastruct(code);
@@ -4872,11 +4872,11 @@
break;
}
}
void
-show_zfs_ioc(private_t *pri, long addr)
+show_zfs_ioc(private_t *pri, long addr, int err)
{
static const zfs_share_t zero_share = {0};
static const dmu_objset_stats_t zero_objstats = {0};
static const struct drr_begin zero_drrbegin = {0};
static const zinject_record_t zero_injectrec = {0};
@@ -4907,14 +4907,19 @@
(void) printf(" nvlist_src:\n");
show_packed_nvlist(pri, zc.zc_nvlist_src,
zc.zc_nvlist_src_size);
}
if (zc.zc_nvlist_dst_size) {
+ if (zc.zc_nvlist_dst_filled) {
(void) printf(" nvlist_dst:\n");
show_packed_nvlist(pri, zc.zc_nvlist_dst,
zc.zc_nvlist_dst_size);
+ } else if (err == ENOMEM) {
+ (void) printf(" nvlist_dst_size: %llu\n",
+ (u_longlong_t)zc.zc_nvlist_dst_size);
}
+ }
if (zc.zc_cookie != 0) {
(void) printf(" zc_cookie=%llu\n",
(u_longlong_t)zc.zc_cookie);
}
if (zc.zc_objset_type != 0) {