>Number:         164802
>Category:       bin
>Synopsis:       Can't destroy zfs snapshots in 8-stable w/o -R
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Feb 05 17:20:06 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Daniel Hagerty
>Release:        FreeBSD 8.2-STABLE amd64
>Organization:
I'll let you know when I find some
>Environment:
System: FreeBSD perdition.linnaean.org 8.2-STABLE FreeBSD 8.2-STABLE #1 
r230385+ec72e00: Fri Jan 27 18:41:46 EST 2012 
[email protected]:/usr/src/sys/amd64/compile/LINNAEAN64 amd64

        8.2-STABLE, git id bc00e44d, svn r230835, some irrelevant
local modifications.

>Description:
        With my most recent update, I am unable to destroy zfs
        snapshots without using -R.  This makes me unhappy, since -R
        is a big hammer.  This is also affect automatic deletion of
        local snapshots provided by the sysutils/zfs-periodic port I'm
        using; it (quite sanely) doesn't use -R.

>How-To-Repeat:

        $ zfs snapshot pool@snapshot
        $ zfs destroy -v pool@snapshot 
will destroy pool@snapshot
will reclaim 0
[Exit 1 ]
        $ zfs list pool@snapshot
NAME                    USED  AVAIL  REFER  MOUNTPOINT
pool@snapshot              0      -    35K  -
        
>Fix:

    Patch that fixes the issue below; it's based on the git id
bc00e44d/svn r230835 that I'm currently running.  The issue is the use
of an uninitialized variable "err".

commit 6233abc650e37b32f247f1e6690c9bc96395a6e8
Author: Daniel Hagerty <[email protected]>
Date:   Sun Feb 5 11:33:26 2012 -0500

    zfs destroy foo@bar fails due to uninitialized var

diff --git a/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c 
b/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
index 78037d4..6bf3267 100644
--- a/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
+++ b/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
@@ -1206,7 +1206,7 @@ zfs_do_destroy(int argc, char **argv)
 
        at = strchr(argv[0], '@');
        if (at != NULL) {
-               int err;
+               int err = 0;
 
                /* Build the list of snaps to destroy in cb_nvl. */
                if (nvlist_alloc(&cb.cb_nvl, NV_UNIQUE_NAME, 0) != 0)
>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"

Reply via email to