From owner-svn-src-head@FreeBSD.ORG Sat Feb 21 19:25:14 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4949A1065670; Sat, 21 Feb 2009 19:25:14 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 37C898FC1B; Sat, 21 Feb 2009 19:25:14 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n1LJPEdA073540; Sat, 21 Feb 2009 19:25:14 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n1LJPENX073539; Sat, 21 Feb 2009 19:25:14 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <200902211925.n1LJPENX073539@svn.freebsd.org> From: Marcel Moolenaar Date: Sat, 21 Feb 2009 19:25:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r188899 - head/sys/geom/part X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Feb 2009 19:25:15 -0000 Author: marcel Date: Sat Feb 21 19:25:13 2009 New Revision: 188899 URL: http://svn.freebsd.org/changeset/base/188899 Log: o When creating the EBR scheme, set the number of entries properly. Otherwise the minimum of 1 is used and you can only insert a single partition/slice and only at sector 0 (index 1). o When adding a partition/slice, recalculate the index after the start and size of the partition/slice are adjusted to make them a multiple of the track size. Since the precheck method sets the index based on the start of the partition as provided by the user, we know that we're off by at most 1 and adjusting the index is safe. Modified: head/sys/geom/part/g_part_ebr.c Modified: head/sys/geom/part/g_part_ebr.c ============================================================================== --- head/sys/geom/part/g_part_ebr.c Sat Feb 21 19:19:11 2009 (r188898) +++ head/sys/geom/part/g_part_ebr.c Sat Feb 21 19:25:13 2009 (r188899) @@ -218,6 +218,7 @@ g_part_ebr_add(struct g_part_table *base KASSERT(baseentry->gpe_start <= start, (__func__)); KASSERT(baseentry->gpe_end >= start + size - 1, (__func__)); + baseentry->gpe_index = (start / sectors) + 1; baseentry->gpe_offset = (off_t)(start + sectors) * pp->sectorsize; baseentry->gpe_start = start; baseentry->gpe_end = start + size - 1; @@ -257,6 +258,7 @@ g_part_ebr_create(struct g_part_table *b return (ENXIO); msize = pp->mediasize / pp->sectorsize; + basetable->gpt_entries = msize / basetable->gpt_sectors; basetable->gpt_first = 0; basetable->gpt_last = msize - (msize % basetable->gpt_sectors) - 1; return (0);