Changes in uspace/srv/bd/vbd/disk.c [4285f384:7ae01d5] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/vbd/disk.c
r4285f384 r7ae01d5 1 1 /* 2 * Copyright (c) 202 5Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 35 35 36 36 #include <adt/list.h> 37 #include <bd.h>38 37 #include <bd_srv.h> 39 38 #include <block.h> … … 72 71 static errno_t vbds_bd_get_block_size(bd_srv_t *, size_t *); 73 72 static errno_t vbds_bd_get_num_blocks(bd_srv_t *, aoff64_t *); 74 static errno_t vbds_bd_eject(bd_srv_t *);75 73 76 74 static errno_t vbds_bsa_translate(vbds_part_t *, aoff64_t, size_t, aoff64_t *); … … 95 93 .write_blocks = vbds_bd_write_blocks, 96 94 .get_block_size = vbds_bd_get_block_size, 97 .get_num_blocks = vbds_bd_get_num_blocks, 98 .eject = vbds_bd_eject 95 .get_num_blocks = vbds_bd_get_num_blocks 99 96 }; 100 97 … … 584 581 log_msg(LOG_DEFAULT, LVL_DEBUG, "block_fini(%zu)", sid); 585 582 block_fini(sid); 586 free(disk->svc_name);587 583 free(disk); 588 584 return EOK; … … 1073 1069 1074 1070 return EOK; 1075 }1076 1077 static errno_t vbds_bd_eject(bd_srv_t *bd)1078 {1079 vbds_part_t *part = bd_srv_part(bd);1080 async_sess_t *sess;1081 bd_t *bdc;1082 errno_t rc;1083 1084 log_msg(LOG_DEFAULT, LVL_DEBUG, "vbds_bd_eject()");1085 1086 fibril_rwlock_read_lock(&part->lock);1087 1088 sess = loc_service_connect(part->disk->svc_id, INTERFACE_BLOCK, 0);1089 if (sess == NULL) {1090 log_msg(LOG_DEFAULT, LVL_WARN,1091 "vbds_bd_eject() - failed connect");1092 fibril_rwlock_read_unlock(&part->lock);1093 return EIO;1094 }1095 1096 rc = bd_open(sess, &bdc);1097 if (rc != EOK) {1098 log_msg(LOG_DEFAULT, LVL_WARN,1099 "vbds_bd_eject() - failed open");1100 async_hangup(sess);1101 fibril_rwlock_read_unlock(&part->lock);1102 return EIO;1103 }1104 1105 rc = bd_eject(bdc);1106 1107 bd_close(bdc);1108 async_hangup(sess);1109 1110 fibril_rwlock_read_unlock(&part->lock);1111 return rc;1112 1071 } 1113 1072
Note:
See TracChangeset
for help on using the changeset viewer.