Changeset edebb4a1 in mainline for uspace/srv/volsrv/part.c


Ignore:
Timestamp:
2015-10-14T22:30:12Z (10 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ea0ff6b
Parents:
4b6635a7
Message:

Handle dummy partition addition/removal during label destruction/creation. Handle dummy label properly in fdisk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/volsrv/part.c

    r4b6635a7 redebb4a1  
    4747#include "types/part.h"
    4848
    49 static int vol_part_add(service_id_t);
    50 
     49static int vol_part_add_locked(service_id_t);
    5150static LIST_INITIALIZE(vol_parts); /* of vol_part_t */
    5251static FIBRIL_MUTEX_INITIALIZE(vol_parts_lock);
     
    9190                        log_msg(LOG_DEFAULT, LVL_NOTE, "Found partition '%lu'",
    9291                            (unsigned long) svcs[i]);
    93                         rc = vol_part_add(svcs[i]);
     92                        rc = vol_part_add_locked(svcs[i]);
    9493                        if (rc != EOK) {
    9594                                log_msg(LOG_DEFAULT, LVL_ERROR, "Could not add "
     
    128127}
    129128
    130 static int vol_part_add(service_id_t sid)
     129static int vol_part_add_locked(service_id_t sid)
    131130{
    132131        vol_part_t *part;
     
    135134
    136135        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;
    137141
    138142        log_msg(LOG_DEFAULT, LVL_NOTE, "vol_part_add()");
     
    160164        list_append(&part->lparts, &vol_parts);
    161165
     166        log_msg(LOG_DEFAULT, LVL_NOTE, "Added partition %zu", part->svc_id);
     167
    162168        return EOK;
    163169
    164170error:
    165171        vol_part_delete(part);
     172        return rc;
     173}
     174
     175int 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
    166183        return rc;
    167184}
Note: See TracChangeset for help on using the changeset viewer.