From owner-freebsd-current@FreeBSD.ORG Mon Aug 22 01:28:36 2011 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CFC86106564A; Mon, 22 Aug 2011 01:28:36 +0000 (UTC) (envelope-from marcel@xcllnt.net) Received: from mail.xcllnt.net (mail.xcllnt.net [70.36.220.4]) by mx1.freebsd.org (Postfix) with ESMTP id 7F2758FC08; Mon, 22 Aug 2011 01:28:35 +0000 (UTC) Received: from dhcp-192-168-2-22.wifi.xcllnt.net (atm.xcllnt.net [70.36.220.6]) (authenticated bits=0) by mail.xcllnt.net (8.14.5/8.14.5) with ESMTP id p7M1STdZ062615 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Sun, 21 Aug 2011 18:28:35 -0700 (PDT) (envelope-from marcel@xcllnt.net) Mime-Version: 1.0 (Apple Message framework v1244.3) Content-Type: text/plain; charset=windows-1252 From: Marcel Moolenaar In-Reply-To: <4E519C13.4060700@freebsd.org> Date: Sun, 21 Aug 2011 18:28:30 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: References: <4E4DB9A7.4040404@freebsd.org> <4E517978.2020705@freebsd.org> <64622705-80AB-4FEF-91E9-8F3041818B4E@xcllnt.net> <4E519C13.4060700@freebsd.org> To: Nathan Whitehorn X-Mailer: Apple Mail (2.1244.3) Cc: "freebsd-current@FreeBSD.org Current" Subject: Re: Well, there goes Windows! X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Aug 2011 01:28:36 -0000 On Aug 21, 2011, at 5:00 PM, Nathan Whitehorn wrote: >=20 > No, it's stupider than that. When you destroy a gpart without = committing, the GEOM itself lingers as a (none)-type partitioning. This = of course makes sense, since that ghost geom is what is maintaining all = the state, but sometimes causes problems. For instance, it breaks some = of my lazy code that identifies non-partitioned disks by seeing if = there is a GEOM there. But, while slightly more complicated to detect, = this would not be too difficult to fix. What if gpart always creates the null scheme if no partitioning exists = on the media? Then the difference between none but uncomitted and just plain = none is gone and we can always make sure the distinction is represented in the = XML. This would also improve the current behavior of "gpart show" in that you = don't get to see any disks that don't have partitions right now. > The larger problem is that this behavior means that destroying gparts = sometimes doesn't work at all. For instance, if you have nested = partitioning like MBR+BSD (or EBR) it is not possible to destroy the = underlying MBR geom without committing the destruction of the BSD geom. = This is because the MBR geom cannot be destroyed, even without = committing, while it continues to have children, which it does due to = the ghost geom for the BSD slice. Yup. It would be good if we can fix that=85 > The regular partitioning editor only commits early in this particular = case, and asks about each subpartition tree separately with a big scary = dialog box. In the spirit of the autopartitioner, it makes one large = scary dialog, and always runs in early commit mode instead of = potentially showing many scary dialogs about partitions the user doesn't = necessarily even know about. This behavior could be changed, but I think = is the most friendly for the case in question: namely, "I want to blow = away everything and let the installer handle all partitioning details by = itself". What about inserting a special class for doing commit/undo. The GEOM simply keeps all modifications in memory and 1) forgets everything on an undo operation or 2) writes all dirty sectors on a commit. This could be used even instead of the gpart-private support, which also removes the quirk for the null scheme. --=20 Marcel Moolenaar marcel@xcllnt.net