Print this page
5847 libzfs_diff should check zfs_prop_get() return
*** 19,28 ****
--- 19,29 ----
* CDDL HEADER END
*/
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
*/
/*
* zfs diff support
*/
*** 614,626 ****
(void) strncpy(di->ds, tosnap, tdslen);
di->ds[tdslen] = '\0';
zhp = zfs_open(hdl, di->ds, ZFS_TYPE_FILESYSTEM);
while (zhp != NULL) {
! (void) zfs_prop_get(zhp, ZFS_PROP_ORIGIN,
! origin, sizeof (origin), &src, NULL, 0, B_FALSE);
!
if (strncmp(origin, fromsnap, fsnlen) == 0)
break;
(void) zfs_close(zhp);
zhp = zfs_open(hdl, origin, ZFS_TYPE_FILESYSTEM);
--- 615,630 ----
(void) strncpy(di->ds, tosnap, tdslen);
di->ds[tdslen] = '\0';
zhp = zfs_open(hdl, di->ds, ZFS_TYPE_FILESYSTEM);
while (zhp != NULL) {
! if (zfs_prop_get(zhp, ZFS_PROP_ORIGIN, origin,
! sizeof (origin), &src, NULL, 0, B_FALSE) != 0) {
! (void) zfs_close(zhp);
! zhp = NULL;
! break;
! }
if (strncmp(origin, fromsnap, fsnlen) == 0)
break;
(void) zfs_close(zhp);
zhp = zfs_open(hdl, origin, ZFS_TYPE_FILESYSTEM);