Author: ae
Date: Sun May 15 11:45:13 2011
New Revision: 221952
URL: http://svn.freebsd.org/changeset/base/221952

Log:
  Simplify the code a bit. For own providers GEOM_PART always provides
  "start" and "end" config attributes.
  
  MFC after:    1 week

Modified:
  head/sbin/geom/class/part/geom_part.c

Modified: head/sbin/geom/class/part/geom_part.c
==============================================================================
--- head/sbin/geom/class/part/geom_part.c       Sun May 15 10:01:38 2011        
(r221951)
+++ head/sbin/geom/class/part/geom_part.c       Sun May 15 11:45:13 2011        
(r221952)
@@ -253,13 +253,7 @@ find_provider(struct ggeom *gp, off_t mi
        bestsector = 0;
        LIST_FOREACH(pp, &gp->lg_provider, lg_provider) {
                s = find_provcfg(pp, "start");
-               if (s == NULL) {
-                       s = find_provcfg(pp, "offset");
-                       sector =
-                           (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize;
-               } else
-                       sector = (off_t)strtoimax(s, NULL, 0);
-
+               sector = (off_t)strtoimax(s, NULL, 0);
                if (sector < minsector)
                        continue;
                if (bestpp != NULL && sector >= bestsector)
@@ -379,18 +373,9 @@ gpart_autofill_resize(struct gctl_req *r
                errx(EXIT_FAILURE, "invalid partition index");
 
        s = find_provcfg(pp, "start");
-       if (s == NULL) {
-               s = find_provcfg(pp, "offset");
-               start = (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize;
-       } else
-               start = (off_t)strtoimax(s, NULL, 0);
+       start = (off_t)strtoimax(s, NULL, 0);
        s = find_provcfg(pp, "end");
-       if (s == NULL) {
-               s = find_provcfg(pp, "length");
-               lba = start +
-                   (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize;
-       } else
-               lba = (off_t)strtoimax(s, NULL, 0) + 1;
+       lba = (off_t)strtoimax(s, NULL, 0) + 1;
 
        if (lba > last) {
                geom_deletetree(&mesh);
@@ -402,12 +387,7 @@ gpart_autofill_resize(struct gctl_req *r
                new_size = ALIGNDOWN(last - start + 1, alignment);
        else {
                s = find_provcfg(pp, "start");
-               if (s == NULL) {
-                       s = find_provcfg(pp, "offset");
-                       new_lba =
-                           (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize;
-               } else
-                       new_lba = (off_t)strtoimax(s, NULL, 0);
+               new_lba = (off_t)strtoimax(s, NULL, 0);
                /*
                 * Is there any free space between current and
                 * next providers?
@@ -512,12 +492,7 @@ gpart_autofill(struct gctl_req *req)
        last = ALIGNDOWN(last, alignment);
        while ((pp = find_provider(gp, first)) != NULL) {
                s = find_provcfg(pp, "start");
-               if (s == NULL) {
-                       s = find_provcfg(pp, "offset");
-                       lba = (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize;
-               } else
-                       lba = (off_t)strtoimax(s, NULL, 0);
-
+               lba = (off_t)strtoimax(s, NULL, 0);
                a_lba = ALIGNDOWN(lba, alignment);
                if (first < a_lba && a_first < a_lba) {
                        /* Free space [first, lba> */
@@ -543,12 +518,7 @@ gpart_autofill(struct gctl_req *req)
                }
 
                s = find_provcfg(pp, "end");
-               if (s == NULL) {
-                       s = find_provcfg(pp, "length");
-                       first = lba +
-                           (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize;
-               } else
-                       first = (off_t)strtoimax(s, NULL, 0) + 1;
+               first = (off_t)strtoimax(s, NULL, 0) + 1;
                a_first = ALIGNUP(first, alignment);
        }
        if (a_first <= last) {
@@ -625,21 +595,12 @@ gpart_show_geom(struct ggeom *gp, const 
 
        while ((pp = find_provider(gp, first)) != NULL) {
                s = find_provcfg(pp, "start");
-               if (s == NULL) {
-                       s = find_provcfg(pp, "offset");
-                       sector = (off_t)strtoimax(s, NULL, 0) / secsz;
-               } else
-                       sector = (off_t)strtoimax(s, NULL, 0);
+               sector = (off_t)strtoimax(s, NULL, 0);
 
                s = find_provcfg(pp, "end");
-               if (s == NULL) {
-                       s = find_provcfg(pp, "length");
-                       length = (off_t)strtoimax(s, NULL, 0) / secsz;
-                       end = sector + length - 1;
-               } else {
-                       end = (off_t)strtoimax(s, NULL, 0);
-                       length = end - sector + 1;
-               }
+               end = (off_t)strtoimax(s, NULL, 0);
+               length = end - sector + 1;
+
                s = find_provcfg(pp, "index");
                idx = atoi(s);
                if (first < sector) {
@@ -782,20 +743,12 @@ gpart_backup(struct gctl_req *req, unsig
        printf("%s %s\n", scheme, s);
        LIST_FOREACH(pp, &gp->lg_provider, lg_provider) {
                s = find_provcfg(pp, "start");
-               if (s == NULL) {
-                       s = find_provcfg(pp, "offset");
-                       sector = (off_t)strtoimax(s, NULL, 0) / secsz;
-               } else
-                       sector = (off_t)strtoimax(s, NULL, 0);
+               sector = (off_t)strtoimax(s, NULL, 0);
 
                s = find_provcfg(pp, "end");
-               if (s == NULL) {
-                       s = find_provcfg(pp, "length");
-                       length = (off_t)strtoimax(s, NULL, 0) / secsz;
-               } else {
-                       end = (off_t)strtoimax(s, NULL, 0);
-                       length = end - sector + 1;
-               }
+               end = (off_t)strtoimax(s, NULL, 0);
+               length = end - sector + 1;
+
                s = find_provcfg(pp, "label");
                printf("%-*s %*s %*jd %*jd %s %s\n",
                    windex, find_provcfg(pp, "index"),
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to