Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/fdisk/src/fdisk.c

    rfe8961d r395df52  
    3535
    3636#include <adt/list.h>
    37 #include <cap.h>
    3837#include <errno.h>
    3938#include <fdisk.h>
     
    219218}
    220219
    221 int fdisk_dev_info_capacity(fdisk_dev_info_t *info, cap_spec_t *cap)
     220int fdisk_dev_info_capacity(fdisk_dev_info_t *info, fdisk_cap_t *cap)
    222221{
    223222        vbd_disk_info_t vinfo;
     
    228227                return EIO;
    229228
    230         cap_from_blocks(vinfo.nblocks, vinfo.block_size, cap);
     229        fdisk_cap_from_blocks(vinfo.nblocks, vinfo.block_size, cap);
    231230        return EOK;
    232231}
     
    270269                part->pcnt = vpinfo.pcnt;
    271270                part->fstype = vpinfo.fstype;
    272                 part->label = str_dup(vpinfo.label);
    273271        }
    274272
     
    295293                dev->ext_part = part;
    296294
    297         cap_from_blocks(part->nblocks, dev->dinfo.block_size,
     295        fdisk_cap_from_blocks(part->nblocks, dev->dinfo.block_size,
    298296            &part->capacity);
    299297        part->part_id = partid;
     
    303301        return EOK;
    304302error:
    305         if (part != NULL)
    306                 free(part->label);
    307303        free(part);
    308304        return rc;
     
    319315        if (link_used(&part->llog_ba))
    320316                list_remove(&part->llog_ba);
    321 
    322         free(part->label);
    323317        free(part);
    324318}
     
    536530}
    537531
    538 int fdisk_dev_capacity(fdisk_dev_t *dev, cap_spec_t *cap)
    539 {
    540         cap_from_blocks(dev->dinfo.nblocks, dev->dinfo.block_size, cap);
     532int fdisk_dev_capacity(fdisk_dev_t *dev, fdisk_cap_t *cap)
     533{
     534        fdisk_cap_from_blocks(dev->dinfo.nblocks, dev->dinfo.block_size, cap);
    541535        return EOK;
    542536}
     
    673667        info->fstype = part->fstype;
    674668        info->pkind = part->pkind;
    675         info->label = part->label;
    676669        return EOK;
    677670}
    678671
    679672/** Get size of largest free block. */
    680 int fdisk_part_get_max_avail(fdisk_dev_t *dev, fdisk_spc_t spc, cap_spec_t *cap)
     673int fdisk_part_get_max_avail(fdisk_dev_t *dev, fdisk_spc_t spc, fdisk_cap_t *cap)
    681674{
    682675        int rc;
     
    697690        }
    698691
    699         cap_from_blocks(nb, dev->dinfo.block_size, cap);
     692        fdisk_cap_from_blocks(nb, dev->dinfo.block_size, cap);
    700693        return EOK;
    701694}
     
    703696/** Get total free space capacity. */
    704697int fdisk_part_get_tot_avail(fdisk_dev_t *dev, fdisk_spc_t spc,
    705     cap_spec_t *cap)
     698    fdisk_cap_t *cap)
    706699{
    707700        fdisk_free_range_t fr;
     
    725718        } while (fdisk_free_range_next(&fr));
    726719
    727         cap_from_blocks(totb, dev->dinfo.block_size, cap);
     720        fdisk_cap_from_blocks(totb, dev->dinfo.block_size, cap);
    728721        return EOK;
    729722}
     
    732725    fdisk_part_t **rpart)
    733726{
    734         fdisk_part_t *part = NULL;
     727        fdisk_part_t *part;
    735728        vbd_part_spec_t vpspec;
    736         vbd_part_id_t partid = 0;
    737         vol_part_info_t vpinfo;
    738         const char *label;
    739         int rc;
    740 
    741         label = pspec->label != NULL ? pspec->label : "";
     729        vbd_part_id_t partid;
     730        int rc;
    742731
    743732        rc = fdisk_part_spec_prepare(dev, pspec, &vpspec);
    744         if (rc != EOK) {
    745                 rc = EIO;
    746                 goto error;
    747         }
     733        if (rc != EOK)
     734                return EIO;
    748735
    749736        rc = vbd_part_create(dev->fdisk->vbd, dev->sid, &vpspec, &partid);
    750         if (rc != EOK) {
    751                 rc = EIO;
    752                 goto error;
    753         }
     737        if (rc != EOK)
     738                return EIO;
    754739
    755740        rc = fdisk_part_add(dev, partid, &part);
    756741        if (rc != EOK) {
    757                 rc = EIO;
    758                 goto error;
     742                /* Try rolling back */
     743                (void) vbd_part_delete(dev->fdisk->vbd, partid);
     744                return EIO;
    759745        }
    760746
    761747        if (part->svc_id != 0) {
    762                 rc = vol_part_mkfs(dev->fdisk->vol, part->svc_id, pspec->fstype,
    763                     label);
     748                rc = vol_part_mkfs(dev->fdisk->vol, part->svc_id, pspec->fstype);
    764749                if (rc != EOK && rc != ENOTSUP) {
    765                         rc = EIO;
    766                         goto error;
    767                 }
    768 
    769                 /* Get the real label value */
    770                 rc = vol_part_info(dev->fdisk->vol, part->svc_id, &vpinfo);
    771                 if (rc != EOK) {
    772                         rc = EIO;
    773                         goto error;
    774                 }
    775 
    776                 part->pcnt = vpinfo.pcnt;
    777                 part->fstype = vpinfo.fstype;
    778                 part->label = str_dup(vpinfo.label);
    779 
    780                 if (part->label == NULL) {
    781                         rc = EIO;
    782                         goto error;
    783                 }
     750                        fdisk_part_remove(part);
     751                        (void) vbd_part_delete(dev->fdisk->vbd, partid);
     752                        return EIO;
     753                }
     754
     755                part->pcnt = vpc_fs;
     756                part->fstype = pspec->fstype;
    784757        }
    785758
     
    787760                *rpart = part;
    788761        return EOK;
    789 error:
    790         /* Try rolling back */
    791         if (part != NULL)
    792                 fdisk_part_remove(part);
    793         if (partid != 0)
    794                 (void) vbd_part_delete(dev->fdisk->vbd, partid);
    795         return rc;
    796762}
    797763
     
    996962        int rc;
    997963
    998         rc = cap_to_blocks(&pspec->capacity, cv_nom, dev->dinfo.block_size,
     964        rc = fdisk_cap_to_blocks(&pspec->capacity, fcv_nom, dev->dinfo.block_size,
    999965            &nom_blocks);
    1000966        if (rc != EOK)
    1001967                return rc;
    1002968
    1003         rc = cap_to_blocks(&pspec->capacity, cv_min, dev->dinfo.block_size,
     969        rc = fdisk_cap_to_blocks(&pspec->capacity, fcv_min, dev->dinfo.block_size,
    1004970            &min_blocks);
    1005971        if (rc != EOK)
    1006972                return rc;
    1007973
    1008         rc = cap_to_blocks(&pspec->capacity, cv_max, dev->dinfo.block_size,
     974        rc = fdisk_cap_to_blocks(&pspec->capacity, fcv_max, dev->dinfo.block_size,
    1009975            &max_blocks);
    1010976        if (rc != EOK)
     
    1015981        max_blocks = fdisk_ba_align_up(dev, max_blocks);
    1016982
    1017         pcnt = LPC_LIMIT;
     983        pcnt = -1;
    1018984
    1019985        switch (pspec->fstype) {
     
    10341000        }
    10351001
    1036         if (pcnt == LPC_LIMIT)
     1002        if (pcnt < 0)
    10371003                return EINVAL;
    10381004
     
    12221188}
    12231189
    1224 /** Get volume label support. */
    1225 int fdisk_get_vollabel_support(fdisk_dev_t *dev, vol_fstype_t fstype,
    1226     vol_label_supp_t *vlsupp)
    1227 {
    1228         return vol_part_get_lsupp(dev->fdisk->vol, fstype, vlsupp);
    1229 }
    1230 
    12311190/** @}
    12321191 */
Note: See TracChangeset for help on using the changeset viewer.