Changeset a210bc7 in mainline for uspace/srv/fs/ext2fs/ext2fs_ops.c


Ignore:
Timestamp:
2011-03-09T14:03:58Z (14 years ago)
Author:
Martin Sucha <sucha14@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
84226f0
Parents:
242b4bb
Message:

ext2fs: Protect instance list with a mutex

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/ext2fs/ext2fs_ops.c

    r242b4bb ra210bc7  
    102102 */
    103103static LIST_INITIALIZE(instance_list);
     104static FIBRIL_MUTEX_INITIALIZE(instance_list_mutex);
    104105
    105106/**
     
    130131        link_t *link;
    131132        ext2fs_instance_t *tmp;
     133       
     134        fibril_mutex_lock(&instance_list_mutex);
    132135
    133136        if (list_empty(&instance_list)) {
    134137                EXT2FS_DBG("list empty");
     138                fibril_mutex_unlock(&instance_list_mutex);
    135139                return EINVAL;
    136140        }
     
    141145                if (tmp->devmap_handle == devmap_handle) {
    142146                        *inst = tmp;
     147                        fibril_mutex_unlock(&instance_list_mutex);
    143148                        return EOK;
    144149                }
     
    146151       
    147152        EXT2FS_DBG("not found");
     153       
     154        fibril_mutex_unlock(&instance_list_mutex);
    148155        return EINVAL;
    149156}
     
    462469        ext2fs_instance_t *inst;
    463470       
    464        
    465        
    466471        /* Accept the mount options */
    467472        char *opts;
     
    513518        inst->devmap_handle = devmap_handle;
    514519        inst->filesystem = fs;
     520       
     521        fibril_mutex_lock(&instance_list_mutex);
    515522        list_append(&inst->link, &instance_list);
     523        fibril_mutex_unlock(&instance_list_mutex);
    516524       
    517525        async_answer_0(rid, EOK);
     
    541549       
    542550        // Remove the instance from list
     551        fibril_mutex_lock(&instance_list_mutex);
    543552        list_remove(&inst->link);
     553        fibril_mutex_unlock(&instance_list_mutex);
     554       
    544555        ext2_filesystem_fini(inst->filesystem);
    545556       
Note: See TracChangeset for help on using the changeset viewer.