Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 May 2012 16:41:27 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r235096 - head/sys/geom/raid
Message-ID:  <201205061641.q46GfRC2022585@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205061641.q46GfRC2022585>