From owner-svn-src-head@FreeBSD.ORG Sun May 6 16:41:27 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BAB30106566B; Sun, 6 May 2012 16:41:27 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8D4788FC0A; Sun, 6 May 2012 16:41:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q46GfRNc022587; Sun, 6 May 2012 16:41:27 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q46GfRC2022585; Sun, 6 May 2012 16:41:27 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201205061641.q46GfRC2022585@svn.freebsd.org> From: Alexander Motin Date: Sun, 6 May 2012 16:41:27 +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: r235096 - head/sys/geom/raid 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: Sun, 06 May 2012 16:41:27 -0000 Author: mav Date: Sun May 6 16:41:27 2012 New Revision: 235096 URL: http://svn.freebsd.org/changeset/base/235096 Log: Remove some hardcoded constants from code. Modified: head/sys/geom/raid/md_ddf.c Modified: head/sys/geom/raid/md_ddf.c ============================================================================== --- head/sys/geom/raid/md_ddf.c Sun May 6 16:32:28 2012 (r235095) +++ head/sys/geom/raid/md_ddf.c Sun May 6 16:41:27 2012 (r235096) @@ -1639,6 +1639,8 @@ g_raid_md_ddf_start_disk(struct g_raid_d g_raid_get_diskname(disk)); goto nofit; } + eoff *= pd->pd_meta.sectorsize; + esize *= pd->pd_meta.sectorsize; size = INT64_MAX; for (i = 0; i < vol->v_disks_count; i++) { sd = &vol->v_subdisks[i]; @@ -1651,16 +1653,15 @@ g_raid_md_ddf_start_disk(struct g_raid_d } if (disk_pos >= 0 && vol->v_raid_level != G_RAID_VOLUME_RL_CONCAT && - (off_t)esize * 512 < size) { + esize < size) { G_RAID_DEBUG1(1, sc, "Disk %s free space " "is too small (%ju < %ju)", - g_raid_get_diskname(disk), - (off_t)esize * 512, size); + g_raid_get_diskname(disk), esize, size); disk_pos = -1; } if (disk_pos >= 0) { if (vol->v_raid_level != G_RAID_VOLUME_RL_CONCAT) - esize = size / 512; + esize = size; md_disk_bvd = disk_pos / GET16(vmeta, vdc->Primary_Element_Count); // XXX md_disk_pos = disk_pos % GET16(vmeta, vdc->Primary_Element_Count); // XXX } else { @@ -1712,8 +1713,8 @@ nofit: g_raid_change_disk_state(disk, G_RAID_DISK_S_ACTIVE); if (resurrection) { - sd->sd_offset = (off_t)eoff * 512; - sd->sd_size = (off_t)esize * 512; + sd->sd_offset = eoff; + sd->sd_size = esize; } else if (pdmeta->cr != NULL && (vdc1 = ddf_meta_find_vdc(pdmeta, vmeta->vdc->VD_GUID)) != NULL) { val2 = (uint64_t *)&(vdc1->Physical_Disk_Sequence[GET16(vmeta, hdr->Max_Primary_Element_Entries)]); @@ -2317,6 +2318,7 @@ g_raid_md_ctl_ddf(struct g_raid_md_objec disks[i] = disk; ddf_meta_unused_range(&pd->pd_meta, &offs[i], &esize); + offs[i] *= pp->sectorsize; size = MIN(size, (off_t)esize * pp->sectorsize); sectorsize = MAX(sectorsize, pp->sectorsize); continue; @@ -2356,7 +2358,8 @@ g_raid_md_ctl_ddf(struct g_raid_md_objec cp->provider->name); /* Reserve some space for metadata. */ - size = MIN(size, pp->mediasize - 131072llu * pp->sectorsize); + size = MIN(size, GET64(&pd->pd_meta, + pdr->entry[0].Configured_Size) * pp->sectorsize); sectorsize = MAX(sectorsize, pp->sectorsize); } if (error != 0) { @@ -2466,7 +2469,7 @@ g_raid_md_ctl_ddf(struct g_raid_md_objec disk = disks[i]; sd = &vol->v_subdisks[i]; sd->sd_disk = disk; - sd->sd_offset = (off_t)offs[i] * 512; + sd->sd_offset = offs[i]; sd->sd_size = size; if (disk == NULL) continue;