Changeset 28ed0d9 in mainline for uspace/lib/fdisk/src/fdisk.c
- Timestamp:
- 2015-06-27T19:50:12Z (9 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 78d50bd
- Parents:
- 22fb7ab
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/fdisk/src/fdisk.c
r22fb7ab r28ed0d9 43 43 #include <stdlib.h> 44 44 #include <str.h> 45 #include <vbd.h> 45 46 #include <vol.h> 46 47 … … 71 72 int fdisk_create(fdisk_t **rfdisk) 72 73 { 73 fdisk_t *fdisk ;74 fdisk_t *fdisk = NULL; 74 75 int rc; 75 76 76 77 fdisk = calloc(1, sizeof(fdisk_t)); 77 if (fdisk == NULL) 78 return ENOMEM; 78 if (fdisk == NULL) { 79 rc = ENOMEM; 80 goto error; 81 } 79 82 80 83 rc = vol_create(&fdisk->vol); 81 84 if (rc != EOK) { 82 free(fdisk); 83 return EIO; 85 rc = EIO; 86 goto error; 87 } 88 89 rc = vbd_create(&fdisk->vbd); 90 if (rc != EOK) { 91 rc = EIO; 92 goto error; 84 93 } 85 94 86 95 *rfdisk = fdisk; 87 96 return EOK; 97 error: 98 fdisk_destroy(fdisk); 99 100 return rc; 88 101 } 89 102 90 103 void fdisk_destroy(fdisk_t *fdisk) 91 104 { 105 if (fdisk == NULL) 106 return; 107 92 108 vol_destroy(fdisk->vol); 109 vbd_destroy(fdisk->vbd); 93 110 free(fdisk); 94 111 } … … 368 385 { 369 386 fdisk_part_t *part; 387 vbd_part_spec_t vpspec; 388 vbd_part_id_t partid; 389 int rc; 370 390 371 391 part = calloc(1, sizeof(fdisk_part_t)); 372 392 if (part == NULL) 373 393 return ENOMEM; 394 395 rc = vbd_part_create(dev->fdisk->vbd, dev->sid, &vpspec, &partid); 396 if (rc != EOK) { 397 free(part); 398 return EIO; 399 } 374 400 375 401 part->dev = dev; … … 377 403 part->capacity = pspec->capacity; 378 404 part->fstype = pspec->fstype; 405 part->part_id = partid; 379 406 380 407 if (rpart != NULL) … … 385 412 int fdisk_part_destroy(fdisk_part_t *part) 386 413 { 414 int rc; 415 416 rc = vbd_part_delete(part->dev->fdisk->vbd, part->part_id); 417 if (rc != EOK) 418 return EIO; 419 387 420 list_remove(&part->ldev); 388 421 free(part);
Note:
See TracChangeset
for help on using the changeset viewer.