From owner-freebsd-fs@FreeBSD.ORG Sun Aug 28 07:36:33 2011 Return-Path: Delivered-To: fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 273801065673 for ; Sun, 28 Aug 2011 07:36:33 +0000 (UTC) (envelope-from trent@snakebite.org) Received: from exchange.liveoffice.com (exchla3.liveoffice.com [64.70.67.188]) by mx1.freebsd.org (Postfix) with ESMTP id 0D9788FC13 for ; Sun, 28 Aug 2011 07:36:32 +0000 (UTC) Received: from EXCASUM07.exchhosting.com (192.168.11.194) by exhub08.exchhosting.com (192.168.11.106) with Microsoft SMTP Server (TLS) id 8.2.213.0; Sun, 28 Aug 2011 00:26:26 -0700 Received: from EXMBX10.exchhosting.com ([fe80:0000:0000:0000:8133:164f:44.75.166.49]) by EXCASUM07.exchhosting.com ([192.168.11.194]) with mapi; Sun, 28 Aug 2011 00:26:26 -0700 From: Trent Nelson To: "fs@freebsd.org" Date: Sun, 28 Aug 2011 00:26:26 -0700 Thread-Topic: How do you zfs rename a dataset that has children? Thread-Index: AcxlU8tu8ntNhIgBSISPvhSrpgKwfg== Message-ID: <5B89610A-4D16-422A-9E52-F182CAF76D68@snakebite.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: Subject: How do you zfs rename a dataset that has children? X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Aug 2011 07:36:33 -0000 This has me scratching my head: [root@usbkey/ttypts/0(~)#] zfs create tank/host/foo [root@usbkey/ttypts/0(~)#] zfs create tank/host/foo/bar =20 [root@usbkey/ttypts/0(~)#] zfs rename tank/host/foo tank/host/test Assertion failed: (!clp->cl_alldependents), file /usr/src/cddl/lib/libzfs/.= ./../../cddl/contrib/opensolaris/lib/libzfs/common/libzfs_changelist.c, lin= e 470. zsh: abort (core dumped) zfs rename tank/host/foo tank/host/test Say wha'? Renaming the child dataset first works, but it's not what I want, obviously= : [root@usbkey/ttypts/0(~)#] zfs rename tank/host/foo/bar tank/host/test/bar cannot create 'tank/host/test/bar': parent does not exist [root@usbkey/ttypts/0(~)#] zfs rename -p tank/host/foo/bar tank/host/test/b= ar [root@usbkey/ttypts/0(~)#] zfs rename tank/host/foo tank/host/test/bar =20 cannot rename 'tank/host/foo': dataset already exists [root@usbkey/ttypts/0(~)#] uname -a FreeBSD usbkey.home.trent.me 8.2-STABLE FreeBSD 8.2-STABLE #2 r224667M: Sat= Aug 6 04:11:46 EDT 2011 root@home.trent.me:/usr/obj/usr/src/sys/GENER= IC amd64 (The 'M' in r224667M is due to a device ID I changed in e1000.h; unrelated = to this issue.) What am I doing wrong? (My actual use case is more complicated than the test case above; I built a= new system, named 'fulcrum', from an existing build, named 'flanker'. I wa= nt to rename tank/host/flanker -> tank/host/fulcrum (hence booting from the= usbkey).) Regards, Trent.