Changes in uspace/srv/bd/vbd/disk.c [ca48672:ddfe233] in mainline
- File:
-
- 1 edited
-
uspace/srv/bd/vbd/disk.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/vbd/disk.c
rca48672 rddfe233 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 … … 1075 1072 } 1076 1073 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 }1113 1114 1074 void vbds_bd_conn(ipc_call_t *icall, void *arg) 1115 1075 { … … 1165 1125 log_msg(LOG_DEFAULT, LVL_DEBUG, "loc_service_register('%s')", 1166 1126 name); 1167 rc = loc_service_register(vbds_srv, name, fallback_port_id,&psid);1127 rc = loc_service_register(vbds_srv, name, &psid); 1168 1128 if (rc != EOK) { 1169 1129 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering "
Note:
See TracChangeset
for help on using the changeset viewer.
