Changeset 5f36841 in mainline for uspace/srv/volsrv/part.c
- Timestamp:
- 2018-06-28T23:03:50Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- db9c889
- Parents:
- 70fae4e
- git-author:
- Jiri Svoboda <jiri@…> (2018-06-28 22:27:12)
- git-committer:
- Jiri Svoboda <jiri@…> (2018-06-28 23:03:50)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/volsrv/part.c
r70fae4e r5f36841 68 68 }; 69 69 70 static const char *fstype_str(vol_fstype_t fstype) 71 { 72 struct fsname_type *fst; 73 74 fst = &fstab[0]; 75 while (fst->name != NULL) { 76 if (fst->fstype == fstype) 77 return fst->name; 78 ++fst; 79 } 80 81 assert(false); 82 return NULL; 83 } 84 70 85 /** Check for new partitions */ 71 86 static errno_t vol_part_check_new(void) … … 204 219 } 205 220 221 static int vol_part_mount(vol_part_t *part) 222 { 223 char *mp; 224 int rc; 225 226 if (str_size(part->label) < 1) { 227 /* Don't mount nameless volumes */ 228 log_msg(LOG_DEFAULT, LVL_NOTE, "Not mounting nameless partition."); 229 return EOK; 230 } 231 232 log_msg(LOG_DEFAULT, LVL_NOTE, "Determine MP label='%s'", part->label); 233 rc = asprintf(&mp, "/vol/%s", part->label); 234 if (rc < 0) { 235 log_msg(LOG_DEFAULT, LVL_NOTE, "rc -> %d", rc); 236 return ENOMEM; 237 } 238 239 log_msg(LOG_DEFAULT, LVL_NOTE, "Create mount point '%s'", mp); 240 rc = vfs_link_path(mp, KIND_DIRECTORY, NULL); 241 if (rc != EOK) { 242 log_msg(LOG_DEFAULT, LVL_ERROR, "Error creating mount point '%s'", 243 mp); 244 free(mp); 245 return EIO; 246 } 247 248 log_msg(LOG_DEFAULT, LVL_NOTE, "Call vfs_mount_path mp='%s' fstype='%s' svc_name='%s'", 249 mp, fstype_str(part->fstype), part->svc_name); 250 rc = vfs_mount_path(mp, fstype_str(part->fstype), 251 part->svc_name, "", 0, 0); 252 if (rc != EOK) { 253 log_msg(LOG_DEFAULT, LVL_NOTE, "Failed mounting to %s", mp); 254 } 255 log_msg(LOG_DEFAULT, LVL_NOTE, "Mount to %s -> %d\n", mp, rc); 256 257 free(mp); 258 return rc; 259 } 260 261 206 262 static errno_t vol_part_add_locked(service_id_t sid) 207 263 { … … 210 266 211 267 assert(fibril_mutex_is_locked(&vol_parts_lock)); 268 log_msg(LOG_DEFAULT, LVL_NOTE, "vol_part_add_locked(%zu)", sid); 212 269 213 270 /* Check for duplicates */ … … 216 273 return EEXIST; 217 274 218 log_msg(LOG_DEFAULT, LVL_DEBUG, "vol_part_add_locked()"); 275 log_msg(LOG_DEFAULT, LVL_NOTE, "partition %zu is new", sid); 276 219 277 part = vol_part_new(); 220 278 if (part == NULL) … … 230 288 231 289 rc = vol_part_probe(part); 290 if (rc != EOK) 291 goto error; 292 293 rc = vol_part_mount(part); 232 294 if (rc != EOK) 233 295 goto error; … … 366 428 } 367 429 430 rc = vol_part_mount(part); 431 if (rc != EOK) { 432 fibril_mutex_unlock(&vol_parts_lock); 433 return rc; 434 } 435 368 436 fibril_mutex_unlock(&vol_parts_lock); 369 437 return EOK;
Note:
See TracChangeset
for help on using the changeset viewer.