Changeset edebb4a1 in mainline for uspace/srv/volsrv
- Timestamp:
- 2015-10-14T22:30:12Z (10 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ea0ff6b
- Parents:
- 4b6635a7
- Location:
- uspace/srv/volsrv
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/volsrv/part.c
r4b6635a7 redebb4a1 47 47 #include "types/part.h" 48 48 49 static int vol_part_add(service_id_t); 50 49 static int vol_part_add_locked(service_id_t); 51 50 static LIST_INITIALIZE(vol_parts); /* of vol_part_t */ 52 51 static FIBRIL_MUTEX_INITIALIZE(vol_parts_lock); … … 91 90 log_msg(LOG_DEFAULT, LVL_NOTE, "Found partition '%lu'", 92 91 (unsigned long) svcs[i]); 93 rc = vol_part_add (svcs[i]);92 rc = vol_part_add_locked(svcs[i]); 94 93 if (rc != EOK) { 95 94 log_msg(LOG_DEFAULT, LVL_ERROR, "Could not add " … … 128 127 } 129 128 130 static int vol_part_add (service_id_t sid)129 static int vol_part_add_locked(service_id_t sid) 131 130 { 132 131 vol_part_t *part; … … 135 134 136 135 assert(fibril_mutex_is_locked(&vol_parts_lock)); 136 137 /* Check for duplicates */ 138 rc = vol_part_find_by_id(sid, &part); 139 if (rc == EOK) 140 return EEXIST; 137 141 138 142 log_msg(LOG_DEFAULT, LVL_NOTE, "vol_part_add()"); … … 160 164 list_append(&part->lparts, &vol_parts); 161 165 166 log_msg(LOG_DEFAULT, LVL_NOTE, "Added partition %zu", part->svc_id); 167 162 168 return EOK; 163 169 164 170 error: 165 171 vol_part_delete(part); 172 return rc; 173 } 174 175 int vol_part_add(service_id_t sid) 176 { 177 int rc; 178 179 fibril_mutex_lock(&vol_parts_lock); 180 rc = vol_part_add_locked(sid); 181 fibril_mutex_unlock(&vol_parts_lock); 182 166 183 return rc; 167 184 } -
uspace/srv/volsrv/part.h
r4b6635a7 redebb4a1 40 40 #include <loc.h> 41 41 #include <sys/types.h> 42 #include < vol.h>42 #include <types/vol.h> 43 43 #include "types/part.h" 44 44 45 45 extern int vol_part_init(void); 46 46 extern int vol_part_discovery_start(void); 47 extern int vol_part_add(service_id_t); 47 48 extern int vol_part_get_ids(service_id_t *, size_t, size_t *); 48 49 extern int vol_part_find_by_id(service_id_t, vol_part_t **); -
uspace/srv/volsrv/volsrv.c
r4b6635a7 redebb4a1 44 44 #include <stdlib.h> 45 45 #include <task.h> 46 #include < vol.h>46 #include <types/vol.h> 47 47 48 48 #include "part.h" … … 116 116 } 117 117 118 static void vol_part_add_srv(ipc_callid_t iid, ipc_call_t *icall) 119 { 120 service_id_t sid; 121 int rc; 122 123 sid = IPC_GET_ARG1(*icall); 124 125 rc = vol_part_add(sid); 126 if (rc != EOK) { 127 async_answer_0(iid, rc); 128 return; 129 } 130 131 async_answer_0(iid, EOK); 132 } 133 134 118 135 static void vol_part_info_srv(ipc_callid_t iid, ipc_call_t *icall) 119 136 { … … 124 141 125 142 sid = IPC_GET_ARG1(*icall); 143 log_msg(LOG_DEFAULT, LVL_NOTE, "vol_part_info_srv(%zu)", 144 sid); 126 145 rc = vol_part_find_by_id(sid, &part); 127 146 if (rc != EOK) { 128 147 async_answer_0(iid, ENOENT); 148 log_msg(LOG_DEFAULT, LVL_NOTE, "vol_part_info_srv(%zu) - " 149 "not found", sid); 129 150 return; 130 151 } … … 133 154 if (rc != EOK) { 134 155 async_answer_0(iid, EIO); 156 log_msg(LOG_DEFAULT, LVL_NOTE, "vol_part_info_srv(%zu) - " 157 "get info failed (%d)", sid, rc); 135 158 return; 136 159 } … … 141 164 async_answer_0(callid, EREFUSED); 142 165 async_answer_0(iid, EREFUSED); 166 log_msg(LOG_DEFAULT, LVL_NOTE, "vol_part_info_srv(%zu) - " 167 "read receive failed", sid); 143 168 return; 144 169 } … … 147 172 async_answer_0(callid, EINVAL); 148 173 async_answer_0(iid, EINVAL); 174 log_msg(LOG_DEFAULT, LVL_NOTE, "vol_part_info_srv(%zu) - " 175 "incorrect size", sid); 149 176 return; 150 177 } … … 155 182 async_answer_0(callid, rc); 156 183 async_answer_0(iid, rc); 157 return; 158 } 159 184 log_msg(LOG_DEFAULT, LVL_NOTE, "vol_part_info_srv(%zu) - " 185 "data read failed", sid); 186 return; 187 } 188 189 log_msg(LOG_DEFAULT, LVL_NOTE, "vol_part_info_srv(%zu) - " 190 "success", sid); 160 191 async_answer_0(iid, EOK); 161 192 } … … 206 237 vol_get_parts_srv(callid, &call); 207 238 break; 239 case VOL_PART_ADD: 240 vol_part_add_srv(callid, &call); 241 break; 208 242 case VOL_PART_INFO: 209 243 vol_part_info_srv(callid, &call);
Note:
See TracChangeset
for help on using the changeset viewer.