Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Mar 2018 23:53:18 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r331394 - stable/11/cddl/contrib/opensolaris/lib/libzfs/common
Message-ID:  <201803222353.w2MNrIQC000691@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Thu Mar 22 23:53:18 2018
New Revision: 331394
URL: https://svnweb.freebsd.org/changeset/base/331394

Log:
  MFC r329668: 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:
  stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
==============================================================================
--- stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c	Thu Mar 22 23:52:37 2018	(r331393)
+++ stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c	Thu Mar 22 23:53:18 2018	(r331394)
@@ -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?201803222353.w2MNrIQC000691>