Changeset 470708da in rtems for cpukit/libblock
- Timestamp:
- 05/14/10 03:59:11 (14 years ago)
- Branches:
- 4.10, 4.11, 5, master
- Children:
- ff861b9d
- Parents:
- a690c003
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cpukit/libblock/src/flashdisk.c
ra690c003 r470708da 2479 2479 c->block_size); 2480 2480 2481 sc = rtems_disk_create_phys(dev, c->block_size,2482 blocks - fd->unavail_blocks,2483 rtems_fdisk_ioctl, NULL, name);2484 if (sc != RTEMS_SUCCESSFUL)2485 {2486 rtems_fdisk_error ("disk create phy failed");2487 return sc;2488 }2489 2490 sc = rtems_semaphore_create (rtems_build_name ('F', 'D', 'S', 'K'), 1,2491 RTEMS_PRIORITY | RTEMS_BINARY_SEMAPHORE |2492 RTEMS_INHERIT_PRIORITY, 0, &fd->lock);2493 if (sc != RTEMS_SUCCESSFUL)2494 {2495 rtems_fdisk_error ("disk lock create failed");2496 return sc;2497 }2498 2499 2481 /* 2500 2482 * One copy buffer of a page size. … … 2514 2496 return RTEMS_NO_MEMORY; 2515 2497 2498 sc = rtems_semaphore_create (rtems_build_name ('F', 'D', 'S', 'K'), 1, 2499 RTEMS_PRIORITY | RTEMS_BINARY_SEMAPHORE | 2500 RTEMS_INHERIT_PRIORITY, 0, &fd->lock); 2501 if (sc != RTEMS_SUCCESSFUL) 2502 { 2503 rtems_fdisk_error ("disk lock create failed"); 2504 free (fd->copy_buffer); 2505 free (fd->blocks); 2506 free (fd->devices); 2507 return sc; 2508 } 2509 2510 sc = rtems_disk_create_phys(dev, c->block_size, 2511 blocks - fd->unavail_blocks, 2512 rtems_fdisk_ioctl, NULL, name); 2513 if (sc != RTEMS_SUCCESSFUL) 2514 { 2515 rtems_semaphore_delete (fd->lock); 2516 rtems_disk_delete (dev); 2517 free (fd->copy_buffer); 2518 free (fd->blocks); 2519 free (fd->devices); 2520 rtems_fdisk_error ("disk create phy failed"); 2521 return sc; 2522 } 2523 2516 2524 for (device = 0; device < c->device_count; device++) 2517 2525 { … … 2525 2533 sizeof (rtems_fdisk_segment_ctl)); 2526 2534 if (!fd->devices[device].segments) 2535 { 2536 rtems_disk_delete (dev); 2537 rtems_semaphore_delete (fd->lock); 2538 free (fd->copy_buffer); 2539 free (fd->blocks); 2540 free (fd->devices); 2527 2541 return RTEMS_NO_MEMORY; 2528 2542 } 2543 2529 2544 sc = fd->devices[device].segments; 2530 2545 … … 2553 2568 ret = rtems_fdisk_recover_block_mappings (fd); 2554 2569 if (ret) 2570 { 2571 rtems_disk_delete (dev); 2572 rtems_semaphore_delete (fd->lock); 2573 free (fd->copy_buffer); 2574 free (fd->blocks); 2575 free (fd->devices); 2555 2576 rtems_fdisk_error ("recovery of disk failed: %s (%d)", 2556 2577 strerror (ret), ret); 2557 2578 } 2579 2558 2580 ret = rtems_fdisk_compact (fd); 2559 2581 if (ret) 2582 { 2583 rtems_disk_delete (dev); 2584 rtems_semaphore_delete (fd->lock); 2585 free (fd->copy_buffer); 2586 free (fd->blocks); 2587 free (fd->devices); 2560 2588 rtems_fdisk_error ("compacting of disk failed: %s (%d)", 2561 2589 strerror (ret), ret); 2590 } 2562 2591 } 2563 2592
Note: See TracChangeset
for help on using the changeset viewer.