Changeset 18b6a88 in mainline for uspace/srv/fs/exfat
- Timestamp:
- 2018-04-15T09:35:04Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c1f44ca
- Parents:
- 8ebe212
- Location:
- uspace/srv/fs/exfat
- Files:
-
- 4 edited
-
exfat_directory.c (modified) (1 diff)
-
exfat_fat.c (modified) (3 diffs)
-
exfat_idx.c (modified) (6 diffs)
-
exfat_ops.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fs/exfat/exfat_directory.c
r8ebe212 r18b6a88 455 455 if (i == df.file.count - 2) { 456 456 chars = ds.stream.name_size - 457 EXFAT_NAME_PART_LEN *(df.file.count - 2);457 EXFAT_NAME_PART_LEN * (df.file.count - 2); 458 458 } 459 459 -
uspace/srv/fs/exfat/exfat_fat.c
r8ebe212 r18b6a88 142 142 */ 143 143 return block_get(block, nodep->idx->service_id, DATA_FS(bs) + 144 (nodep->lastc_cached_value-EXFAT_CLST_FIRST)*SPC(bs) +144 (nodep->lastc_cached_value - EXFAT_CLST_FIRST) * SPC(bs) + 145 145 (bn % SPC(bs)), flags); 146 146 } … … 201 201 if (!fragmented) { 202 202 rc = block_get(block, service_id, DATA_FS(bs) + 203 (fcl - EXFAT_CLST_FIRST) *SPC(bs) + bn, flags);203 (fcl - EXFAT_CLST_FIRST) * SPC(bs) + bn, flags); 204 204 } else { 205 205 max_clusters = bn / SPC(bs); … … 514 514 block_t *b; 515 515 errno_t rc; 516 blocks = ROUND_UP(nodep->size, BPS(bs)) /BPS(bs);516 blocks = ROUND_UP(nodep->size, BPS(bs)) / BPS(bs); 517 517 count = BPS(bs); 518 518 -
uspace/srv/fs/exfat/exfat_idx.c
r8ebe212 r18b6a88 119 119 static inline size_t pos_key_hash(void *key) 120 120 { 121 pos_key_t *pos = (pos_key_t *)key;121 pos_key_t *pos = (pos_key_t *)key; 122 122 123 123 size_t hash = 0; … … 141 141 static bool pos_key_equal(void *key, const ht_link_t *item) 142 142 { 143 pos_key_t *pos = (pos_key_t *)key;143 pos_key_t *pos = (pos_key_t *)key; 144 144 exfat_idx_t *fidx = hash_table_get_inst(item, exfat_idx_t, uph_link); 145 145 146 return pos->service_id == fidx->service_id 147 && pos->pdi == fidx->pdi148 &&pos->pfc == fidx->pfc;146 return pos->service_id == fidx->service_id && 147 pos->pdi == fidx->pdi && 148 pos->pfc == fidx->pfc; 149 149 } 150 150 … … 170 170 static size_t idx_key_hash(void *key_arg) 171 171 { 172 idx_key_t *key = (idx_key_t *)key_arg;172 idx_key_t *key = (idx_key_t *)key_arg; 173 173 return hash_combine(key->service_id, key->index); 174 174 } … … 183 183 { 184 184 exfat_idx_t *fidx = hash_table_get_inst(item, exfat_idx_t, uih_link); 185 idx_key_t *key = (idx_key_t *)key_arg;185 idx_key_t *key = (idx_key_t *)key_arg; 186 186 187 187 return key->index == fidx->index && key->service_id == fidx->service_id; … … 509 509 static bool rm_pos_service_id(ht_link_t *item, void *arg) 510 510 { 511 service_id_t service_id = *(service_id_t *)arg;511 service_id_t service_id = *(service_id_t *)arg; 512 512 exfat_idx_t *fidx = hash_table_get_inst(item, exfat_idx_t, uph_link); 513 513 … … 521 521 static bool rm_idx_service_id(ht_link_t *item, void *arg) 522 522 { 523 service_id_t service_id = *(service_id_t *)arg;523 service_id_t service_id = *(service_id_t *)arg; 524 524 exfat_idx_t *fidx = hash_table_get_inst(item, exfat_idx_t, uih_link); 525 525 -
uspace/srv/fs/exfat/exfat_ops.c
r8ebe212 r18b6a88 248 248 fn = FS_NODE(nodep); 249 249 } else { 250 skip_cache:250 skip_cache: 251 251 /* Try to allocate a new node structure. */ 252 252 fibril_mutex_unlock(&ffn_mutex); … … 533 533 (BPS(di.bs) / sizeof(exfat_dentry_t)); 534 534 exfat_idx_t *idx = exfat_idx_get_by_pos(service_id, 535 parentp->firstc, di.bnum * DPS(di.bs) + o);535 parentp->firstc, di.bnum * DPS(di.bs) + o); 536 536 if (!idx) { 537 537 /* … … 706 706 if (nodep->fragmented) 707 707 rc = exfat_free_clusters(bs, nodep->idx->service_id, 708 nodep->firstc);708 nodep->firstc); 709 709 else 710 710 rc = exfat_bitmap_free_clusters(bs, nodep, … … 805 805 806 806 exfat_directory_t di; 807 rc = exfat_directory_open(parentp, &di);807 rc = exfat_directory_open(parentp, &di); 808 808 if (rc != EOK) 809 809 goto error; … … 1062 1062 rc = exfat_node_get_new_by_pos(&rootp, service_id, EXFAT_ROOT_PAR, 1063 1063 EXFAT_ROOT_POS); 1064 if (rc !=EOK) {1064 if (rc != EOK) { 1065 1065 (void) block_cache_fini(service_id); 1066 1066 block_fini(service_id); … … 1183 1183 block_fini(service_id); 1184 1184 exfat_idx_fini_by_service_id(service_id); 1185 return ENOTSUP;1185 return ENOTSUP; 1186 1186 } 1187 1187 } … … 1409 1409 (void) exfat_directory_close(&di); 1410 1410 1411 err:1411 err: 1412 1412 (void) exfat_node_put(fn); 1413 1413 async_answer_0(chandle, rc); 1414 1414 return rc; 1415 1415 1416 miss:1416 miss: 1417 1417 rc = exfat_directory_close(&di); 1418 1418 if (rc != EOK) … … 1423 1423 return rc != EOK ? rc : ENOENT; 1424 1424 1425 hit:1425 hit: 1426 1426 pos = di.pos; 1427 1427 rc = exfat_directory_close(&di);
Note:
See TracChangeset
for help on using the changeset viewer.
