Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/fat/fat_ops.c

    rb72efe8 r79ae36dd  
    6767
    6868/** List of cached free FAT nodes. */
    69 static LIST_INITIALIZE(ffn_list);
     69static LIST_INITIALIZE(ffn_head);
    7070
    7171/*
     
    147147static int fat_node_fini_by_devmap_handle(devmap_handle_t devmap_handle)
    148148{
     149        link_t *lnk;
    149150        fat_node_t *nodep;
    150151        int rc;
     
    158159restart:
    159160        fibril_mutex_lock(&ffn_mutex);
    160         list_foreach(ffn_list, lnk) {
     161        for (lnk = ffn_head.next; lnk != &ffn_head; lnk = lnk->next) {
    161162                nodep = list_get_instance(lnk, fat_node_t, ffn_link);
    162163                if (!fibril_mutex_trylock(&nodep->lock)) {
     
    195196                free(nodep);
    196197
    197                 /* Need to restart because we changed ffn_list. */
     198                /* Need to restart because we changed the ffn_head list. */
    198199                goto restart;
    199200        }
     
    210211
    211212        fibril_mutex_lock(&ffn_mutex);
    212         if (!list_empty(&ffn_list)) {
     213        if (!list_empty(&ffn_head)) {
    213214                /* Try to use a cached free node structure. */
    214215                fat_idx_t *idxp_tmp;
    215                 nodep = list_get_instance(list_first(&ffn_list), fat_node_t,
    216                     ffn_link);
     216                nodep = list_get_instance(ffn_head.next, fat_node_t, ffn_link);
    217217                if (!fibril_mutex_trylock(&nodep->lock))
    218218                        goto skip_cache;
     
    473473                if (nodep->idx) {
    474474                        fibril_mutex_lock(&ffn_mutex);
    475                         list_append(&nodep->ffn_link, &ffn_list);
     475                        list_append(&nodep->ffn_link, &ffn_head);
    476476                        fibril_mutex_unlock(&ffn_mutex);
    477477                } else {
Note: See TracChangeset for help on using the changeset viewer.