Changes in uspace/srv/bd/vbd/disk.c [4285f384:fafb8e5] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/vbd/disk.c
r4285f384 rfafb8e5 1 1 /* 2 * Copyright (c) 20 25Jiri Svoboda2 * Copyright (c) 2016 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> … … 52 51 #include "types/vbd.h" 53 52 54 loc_srv_t *vbds_srv;55 56 53 static fibril_mutex_t vbds_disks_lock; 57 54 static list_t vbds_disks; /* of vbds_disk_t */ … … 72 69 static errno_t vbds_bd_get_block_size(bd_srv_t *, size_t *); 73 70 static errno_t vbds_bd_get_num_blocks(bd_srv_t *, aoff64_t *); 74 static errno_t vbds_bd_eject(bd_srv_t *);75 71 76 72 static errno_t vbds_bsa_translate(vbds_part_t *, aoff64_t, size_t, aoff64_t *); … … 95 91 .write_blocks = vbds_bd_write_blocks, 96 92 .get_block_size = vbds_bd_get_block_size, 97 .get_num_blocks = vbds_bd_get_num_blocks, 98 .eject = vbds_bd_eject 93 .get_num_blocks = vbds_bd_get_num_blocks 99 94 }; 100 95 … … 502 497 503 498 log_msg(LOG_DEFAULT, LVL_DEBUG, "block_init(%zu)", sid); 504 rc = block_init(sid );499 rc = block_init(sid, 2048); 505 500 if (rc != EOK) { 506 501 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed opening block device %s.", … … 584 579 log_msg(LOG_DEFAULT, LVL_DEBUG, "block_fini(%zu)", sid); 585 580 block_fini(sid); 586 free(disk->svc_name);587 581 free(disk); 588 582 return EOK; … … 1075 1069 } 1076 1070 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 1071 void vbds_bd_conn(ipc_call_t *icall, void *arg) 1115 1072 { … … 1165 1122 log_msg(LOG_DEFAULT, LVL_DEBUG, "loc_service_register('%s')", 1166 1123 name); 1167 rc = loc_service_register( vbds_srv,name, &psid);1124 rc = loc_service_register(name, &psid); 1168 1125 if (rc != EOK) { 1169 1126 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering " … … 1174 1131 } 1175 1132 1176 rc = loc_service_add_to_cat( vbds_srv,psid, part_cid);1133 rc = loc_service_add_to_cat(psid, part_cid); 1177 1134 if (rc != EOK) { 1178 1135 log_msg(LOG_DEFAULT, LVL_ERROR, "Failled adding partition " … … 1181 1138 free(part); 1182 1139 1183 rc = loc_service_unregister( vbds_srv,psid);1140 rc = loc_service_unregister(psid); 1184 1141 if (rc != EOK) { 1185 1142 log_msg(LOG_DEFAULT, LVL_ERROR, "Error unregistering " … … 1203 1160 "disk->svc_name='%s', id=%zu)", part->disk->svc_name, part->svc_id); 1204 1161 1205 rc = loc_service_unregister( vbds_srv,part->svc_id);1162 rc = loc_service_unregister(part->svc_id); 1206 1163 if (rc != EOK) 1207 1164 return EIO;
Note:
See TracChangeset
for help on using the changeset viewer.