Changes in uspace/srv/fs/fat/fat_ops.c [b72efe8:79ae36dd] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fs/fat/fat_ops.c
rb72efe8 r79ae36dd 67 67 68 68 /** List of cached free FAT nodes. */ 69 static LIST_INITIALIZE(ffn_ list);69 static LIST_INITIALIZE(ffn_head); 70 70 71 71 /* … … 147 147 static int fat_node_fini_by_devmap_handle(devmap_handle_t devmap_handle) 148 148 { 149 link_t *lnk; 149 150 fat_node_t *nodep; 150 151 int rc; … … 158 159 restart: 159 160 fibril_mutex_lock(&ffn_mutex); 160 list_foreach(ffn_list, lnk) {161 for (lnk = ffn_head.next; lnk != &ffn_head; lnk = lnk->next) { 161 162 nodep = list_get_instance(lnk, fat_node_t, ffn_link); 162 163 if (!fibril_mutex_trylock(&nodep->lock)) { … … 195 196 free(nodep); 196 197 197 /* Need to restart because we changed ffn_list. */198 /* Need to restart because we changed the ffn_head list. */ 198 199 goto restart; 199 200 } … … 210 211 211 212 fibril_mutex_lock(&ffn_mutex); 212 if (!list_empty(&ffn_ list)) {213 if (!list_empty(&ffn_head)) { 213 214 /* Try to use a cached free node structure. */ 214 215 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); 217 217 if (!fibril_mutex_trylock(&nodep->lock)) 218 218 goto skip_cache; … … 473 473 if (nodep->idx) { 474 474 fibril_mutex_lock(&ffn_mutex); 475 list_append(&nodep->ffn_link, &ffn_ list);475 list_append(&nodep->ffn_link, &ffn_head); 476 476 fibril_mutex_unlock(&ffn_mutex); 477 477 } else {
Note:
See TracChangeset
for help on using the changeset viewer.