Changeset 53e3950 in mainline for uspace/lib/fdisk/src/fdisk.c
- Timestamp:
- 2016-02-18T17:01:49Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9e53406
- Parents:
- e11c527
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/fdisk/src/fdisk.c
re11c527 r53e3950 35 35 36 36 #include <adt/list.h> 37 #include <block.h>38 37 #include <errno.h> 39 38 #include <fdisk.h> 40 39 #include <loc.h> 40 #include <macros.h> 41 41 #include <mem.h> 42 42 #include <stdlib.h> … … 65 65 return; 66 66 67 if (info->blk_inited)68 block_fini(info->svcid);69 70 67 free(info->svcname); 71 68 free(info); … … 125 122 return ENOMEM; 126 123 124 devlist->fdisk = fdisk; 127 125 list_initialize(&devlist->devinfos); 128 126 … … 222 220 int fdisk_dev_info_capacity(fdisk_dev_info_t *info, fdisk_cap_t *cap) 223 221 { 224 size_t bsize; 225 aoff64_t nblocks; 226 int rc; 227 228 if (!info->blk_inited) { 229 rc = block_init(info->svcid, 2048); 230 if (rc != EOK) 231 return rc; 232 233 info->blk_inited = true; 234 } 235 236 rc = block_get_bsize(info->svcid, &bsize); 222 vbd_disk_info_t vinfo; 223 int rc; 224 225 rc = vbd_disk_info(info->devlist->fdisk->vbd, info->svcid, &vinfo); 237 226 if (rc != EOK) 238 227 return EIO; 239 228 240 rc = block_get_nblocks(info->svcid, &nblocks); 241 if (rc != EOK) 242 return EIO; 243 244 fdisk_cap_from_blocks(nblocks, bsize, cap); 229 fdisk_cap_from_blocks(vinfo.nblocks, vinfo.block_size, cap); 245 230 return EOK; 246 231 } … … 435 420 int fdisk_dev_open(fdisk_t *fdisk, service_id_t sid, fdisk_dev_t **rdev) 436 421 { 437 vbd_disk_info_t vinfo;438 422 fdisk_dev_t *dev = NULL; 439 423 service_id_t *psids = NULL; … … 451 435 list_initialize(&dev->pri_ba); 452 436 list_initialize(&dev->log_ba); 453 454 rc = vbd_disk_info(fdisk->vbd, sid, &vinfo);455 if (rc != EOK) {456 rc = EIO;457 goto error;458 }459 437 460 438 rc = fdisk_update_dev_info(dev); … … 554 532 int fdisk_dev_capacity(fdisk_dev_t *dev, fdisk_cap_t *cap) 555 533 { 556 size_t bsize; 557 aoff64_t nblocks; 558 int rc; 559 560 rc = block_init(dev->sid, 2048); 561 if (rc != EOK) 562 return rc; 563 564 rc = block_get_bsize(dev->sid, &bsize); 565 if (rc != EOK) 566 return EIO; 567 568 rc = block_get_nblocks(dev->sid, &nblocks); 569 if (rc != EOK) 570 return EIO; 571 572 block_fini(dev->sid); 573 574 fdisk_cap_from_blocks(nblocks, bsize, cap); 534 fdisk_cap_from_blocks(dev->dinfo.nblocks, dev->dinfo.block_size, cap); 575 535 return EOK; 576 536 }
Note:
See TracChangeset
for help on using the changeset viewer.