]> granicus.if.org Git - zfs/commitdiff
OpenZFS 7990 - libzfs: snapspec_cb() does not need to call zfs_strdup()
authorGiuseppe Di Natale <dinatale2@users.noreply.github.com>
Wed, 29 Mar 2017 00:22:46 +0000 (17:22 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 29 Mar 2017 00:22:46 +0000 (17:22 -0700)
Authored by: Marcel Telka <marcel@telka.sk>
Reviewed by: Yuri Pankov <yuri.pankov@gmail.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Approved by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Ported-by: Giuseppe Di Natale <dinatale2@llnl.gov>
OpenZFS-issue: https://www.illumos.org/issues/7990
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/d8584ba
Closes #5939

lib/libzfs/libzfs_iter.c

index e22a2c85b140dcec379b8b5a168e5931b84c00ad..d78c757a58b718fd7273e15dbbe38102f7f7475b 100644 (file)
@@ -312,16 +312,17 @@ 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);
@@ -329,10 +330,6 @@ snapspec_cb(zfs_handle_t *zhp, void *arg)
                zfs_close(zhp);
        }
 
-       if (strcmp(shortsnapname, ssa->ssa_last) == 0)
-               ssa->ssa_seenlast = B_TRUE;
-       free(shortsnapname);
-
        return (err);
 }