Changes in uspace/srv/fs/fat/fat_ops.c [a405563:d44aabd] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fs/fat/fat_ops.c
ra405563 rd44aabd 332 332 /* idxp->lock held */ 333 333 if (flags & L_DIRECTORY) { 334 int i; 335 block_t *b; 336 337 /* 338 * Populate the new cluster with unused dentries. 339 */ 340 for (i = 0; i < bs->spc; i++) { 341 b = _fat_block_get(bs, dev_handle, mcl, i, 342 BLOCK_FLAGS_NOREAD); 343 /* mark all dentries as never-used */ 344 memset(b->data, 0, bps); 345 b->dirty = false; 346 block_put(b); 347 } 334 /* Populate the new cluster with unused dentries. */ 335 fat_zero_cluster(bs, dev_handle, mcl); 348 336 nodep->type = FAT_DIRECTORY; 349 337 nodep->firstc = mcl; … … 462 450 * We need to grow the parent in order to create a new unused dentry. 463 451 */ 464 if (parentp-> idx->pfc == FAT_CLST_ROOT) {452 if (parentp->firstc == FAT_CLST_ROOT) { 465 453 /* Can't grow the root directory. */ 466 454 fibril_mutex_unlock(&parentp->idx->lock); … … 472 460 return rc; 473 461 } 462 fat_zero_cluster(bs, parentp->idx->dev_handle, mcl); 474 463 fat_append_clusters(bs, parentp, mcl); 475 b = fat_block_get(bs, parentp, i, BLOCK_FLAGS_NOREAD); 464 parentp->size += bps * bs->spc; 465 parentp->dirty = true; /* need to sync node */ 466 b = fat_block_get(bs, parentp, i, BLOCK_FLAGS_NONE); 476 467 d = (fat_dentry_t *)b->data; 477 /*478 * Clear all dentries in the block except for the first one (the first479 * dentry will be cleared in the next step).480 */481 memset(d + 1, 0, bps - sizeof(fat_dentry_t));482 468 483 469 hit:
Note:
See TracChangeset
for help on using the changeset viewer.