Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Feb 2018 20:46:27 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r329668 - head/cddl/contrib/opensolaris/lib/libzfs/common
Message-ID:  <201802202046.w1KKkRcZ063174@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Tue Feb 20 20:46:27 2018
New Revision: 329668
URL: https://svnweb.freebsd.org/changeset/base/329668

Log:
  MFV r316918: 7990 libzfs: snapspec_cb() does not need to call zfs_strdup()
  
  illumos/illumos-gate@d8584ba6fb7a5e46da1725845b99ae5fab5a4baf
  https://github.com/illumos/illumos-gate/commit/d8584ba6fb7a5e46da1725845b99ae5fab5a4baf
  
  https://www.illumos.org/issues/7990
    The snapspec_cb() callback function in libzfs does not need to call zfs_strdup().
  
  Reviewed by: Yuri Pankov <yuri.pankov@gmail.com>
  Reviewed by: Toomas Soome <tsoome@me.com>
  Approved by: Matthew Ahrens <mahrens@delphix.com>
  Author: Marcel Telka <marcel@telka.sk>

Modified:
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
Directory Properties:
  head/cddl/contrib/opensolaris/   (props changed)
  head/cddl/contrib/opensolaris/lib/libzfs/   (props changed)

Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c	Tue Feb 20 20:40:55 2018	(r329667)
+++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c	Tue Feb 20 20:46:27 2018	(r329668)
@@ -317,26 +317,23 @@ static int
 snapspec_cb(zfs_handle_t *zhp, void *arg)
 {
 	snapspec_arg_t *ssa = arg;
-	char *shortsnapname;
+	const char *shortsnapname;
 	int err = 0;
 
 	if (ssa->ssa_seenlast)
 		return (0);
-	shortsnapname = zfs_strdup(zhp->zfs_hdl,
-	    strchr(zfs_get_name(zhp), '@') + 1);
 
+	shortsnapname = strchr(zfs_get_name(zhp), '@') + 1;
 	if (!ssa->ssa_seenfirst && strcmp(shortsnapname, ssa->ssa_first) == 0)
 		ssa->ssa_seenfirst = B_TRUE;
+	if (strcmp(shortsnapname, ssa->ssa_last) == 0)
+		ssa->ssa_seenlast = B_TRUE;
 
 	if (ssa->ssa_seenfirst) {
 		err = ssa->ssa_func(zhp, ssa->ssa_arg);
 	} else {
 		zfs_close(zhp);
 	}
-
-	if (strcmp(shortsnapname, ssa->ssa_last) == 0)
-		ssa->ssa_seenlast = B_TRUE;
-	free(shortsnapname);
 
 	return (err);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802202046.w1KKkRcZ063174>