Changeset 4285f384 in mainline for uspace/srv/volsrv/part.c
- Timestamp:
- 2025-02-25T20:25:43Z (16 hours ago)
- Branches:
- master
- Parents:
- d231a54
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/volsrv/part.c
rd231a54 r4285f384 1 1 /* 2 * Copyright (c) 202 4Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 36 36 37 37 #include <adt/list.h> 38 #include <bd.h> 38 39 #include <errno.h> 39 40 #include <fibril_synch.h> … … 642 643 } 643 644 644 errno_t vol_part_eject_part(vol_part_t *part) 645 static errno_t vol_part_eject_device(service_id_t svcid) 646 { 647 async_sess_t *sess; 648 errno_t rc; 649 bd_t *bd; 650 651 log_msg(LOG_DEFAULT, LVL_DEBUG, "vol_part_eject_device(%zu)", 652 (size_t)svcid); 653 654 sess = loc_service_connect(svcid, INTERFACE_BLOCK, 0); 655 if (sess == NULL) 656 return EIO; 657 658 rc = bd_open(sess, &bd); 659 if (rc != EOK) { 660 async_hangup(sess); 661 return EIO; 662 } 663 664 rc = bd_eject(bd); 665 if (rc != EOK) { 666 log_msg(LOG_DEFAULT, LVL_WARN, "vol_part_eject_device(): " 667 "eject fail"); 668 bd_close(bd); 669 async_hangup(sess); 670 return EIO; 671 } 672 673 bd_close(bd); 674 async_hangup(sess); 675 return EOK; 676 } 677 678 errno_t vol_part_eject_part(vol_part_t *part, vol_eject_flags_t flags) 645 679 { 646 680 int rc; … … 667 701 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed deleting " 668 702 "mount directory %s.", part->cur_mp); 703 } 704 } 705 706 if ((flags & vef_physical) != 0) { 707 rc = vol_part_eject_device(part->svc_id); 708 if (rc != EOK) { 709 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed physically " 710 "ejecting device %s.", part->svc_name); 669 711 } 670 712 } … … 819 861 820 862 if (part->cur_mp != NULL) { 821 rc = vol_part_eject_part(part );863 rc = vol_part_eject_part(part, vef_none); 822 864 if (rc != EOK) 823 865 return rc;
Note:
See TracChangeset
for help on using the changeset viewer.