Ignore:
Timestamp:
2012-03-03T20:06:31Z (12 years ago)
Author:
Frantisek Princ <frantisek.princ@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e8d054a
Parents:
7689590
Message:

Some TODOs solved (mostly in error handling)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ext4/libext4_filesystem.c

    r7689590 re63ce679  
    3333/**
    3434 * @file        libext4_filesystem.c
    35  * @brief       TODO
     35 * @brief       More complex filesystem operations.
    3636 */
    3737
     
    348348                rc = block_get(&block, fs->device, fblock, BLOCK_FLAGS_NONE);
    349349                if (rc != EOK) {
    350                         // TODO error
     350                        return rc;
    351351                }
    352352
     
    358358                                rc = ext4_balloc_free_block(fs, inode_ref, ind_block);
    359359                                if (rc != EOK) {
    360                                         // TODO error
     360                                        block_put(block);
     361                                        return rc;
    361362                                }
    362363                        }
     
    366367                rc = ext4_balloc_free_block(fs, inode_ref, fblock);
    367368                if (rc != EOK) {
    368                         // TODO error
     369                        return rc;
    369370                }
    370371
     
    379380                rc = block_get(&block, fs->device, fblock, BLOCK_FLAGS_NONE);
    380381                if (rc != EOK) {
    381                         // TODO error
     382                        return rc;
    382383                }
    383384
     
    389390                                rc = block_get(&subblock, fs->device, ind_block, BLOCK_FLAGS_NONE);
    390391                                if (rc != EOK) {
    391                                         // TODO error
     392                                        block_put(block);
     393                                        return rc;
    392394                                }
    393395
     
    399401                                                rc = ext4_balloc_free_block(fs, inode_ref, ind_subblock);
    400402                                                if (rc != EOK) {
    401                                                         // TODO error
     403                                                        block_put(subblock);
     404                                                        block_put(block);
     405                                                        return rc;
    402406                                                }
    403407                                        }
     
    410414                        rc = ext4_balloc_free_block(fs, inode_ref, ind_block);
    411415                        if (rc != EOK) {
    412                                 // TODO error
     416                                block_put(block);
     417                                return rc;
    413418                        }
    414419
     
    419424                rc = ext4_balloc_free_block(fs, inode_ref, fblock);
    420425                if (rc != EOK) {
    421                         // TODO error
     426                        return rc;
    422427                }
    423428
     
    613618        }
    614619
    615 
    616 
    617620        uint32_t block_size = ext4_superblock_get_block_size(fs->superblock);
    618621
     
    628631                rc = ext4_balloc_alloc_block(fs, inode_ref, &new_block_addr);
    629632                if (rc != EOK) {
    630                         // TODO error
    631                         EXT4FS_DBG("error in allocation");
     633                        return rc;
    632634                }
    633635
     
    638640                rc = block_get(&new_block, fs->device, new_block_addr, BLOCK_FLAGS_NOREAD);
    639641                if (rc != EOK) {
    640                         EXT4FS_DBG("block load error");
    641                         // TODO error
     642                        ext4_balloc_free_block(fs, inode_ref, new_block_addr);
     643                        return rc;
    642644                }
    643645
     
    647649                rc = block_put(new_block);
    648650                if (rc != EOK) {
    649                         EXT4FS_DBG("block put error");
    650                 }
    651 
    652 //              EXT4FS_DBG("allocated indirect block for level \%u, during setting iblock \%u", level, (uint32_t)iblock);
     651                        return rc;
     652                }
    653653
    654654                current_block = new_block_addr;
     
    670670                        rc = ext4_balloc_alloc_block(fs, inode_ref, &new_block_addr);
    671671                        if (rc != EOK) {
    672                                 // TODO error
    673                                 EXT4FS_DBG("allocation error");
     672                                block_put(block);
     673                                return rc;
    674674                        }
    675675
    676676                        rc = block_get(&new_block, fs->device, new_block_addr, BLOCK_FLAGS_NOREAD);
    677677                        if (rc != EOK) {
    678                                 // TODO error
    679 
    680                                 EXT4FS_DBG("BBB: error block loading");
    681 
     678                                block_put(block);
     679                                return rc;
    682680                        }
     681
    683682                        memset(new_block->data, 0, block_size);
    684683                        new_block->dirty = true;
     
    686685                        rc = block_put(new_block);
    687686                        if (rc != EOK) {
    688                                 EXT4FS_DBG("BBB: error indirect block saving");
     687                                block_put(block);
     688                                return rc;
    689689                        }
    690690
Note: See TracChangeset for help on using the changeset viewer.