Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/cdfs/cdfs_ops.c

    r38d150e rb7fd2a0  
    331331};
    332332
    333 static int cdfs_node_get(fs_node_t **rfn, service_id_t service_id,
     333static errno_t cdfs_node_get(fs_node_t **rfn, service_id_t service_id,
    334334    fs_index_t index)
    335335{
     
    351351}
    352352
    353 static int cdfs_root_get(fs_node_t **rfn, service_id_t service_id)
     353static errno_t cdfs_root_get(fs_node_t **rfn, service_id_t service_id)
    354354{
    355355        return cdfs_node_get(rfn, service_id, CDFS_SOME_ROOT);
     
    371371}
    372372
    373 static int create_node(fs_node_t **rfn, cdfs_t *fs, int lflag,
     373static errno_t create_node(fs_node_t **rfn, cdfs_t *fs, int lflag,
    374374    fs_index_t index)
    375375{
     
    392392       
    393393        fs_node_t *rootfn;
    394         int rc = cdfs_root_get(&rootfn, fs->service_id);
     394        errno_t rc = cdfs_root_get(&rootfn, fs->service_id);
    395395       
    396396        assert(rc == EOK);
     
    417417}
    418418
    419 static int link_node(fs_node_t *pfn, fs_node_t *fn, const char *name)
     419static errno_t link_node(fs_node_t *pfn, fs_node_t *fn, const char *name)
    420420{
    421421        cdfs_node_t *parent = CDFS_NODE(pfn);
     
    460460static char *cdfs_decode_str(void *data, size_t dsize, cdfs_enc_t enc)
    461461{
    462         int rc;
     462        errno_t rc;
    463463        char *str;
    464464        uint16_t *buf;
     
    566566}
    567567
    568 static bool cdfs_readdir(cdfs_t *fs, fs_node_t *fs_node)
     568static errno_t cdfs_readdir(cdfs_t *fs, fs_node_t *fs_node)
    569569{
    570570        cdfs_node_t *node = CDFS_NODE(fs_node);
     
    572572       
    573573        if (node->processed)
    574                 return true;
     574                return EOK;
    575575       
    576576        uint32_t blocks = node->size / BLOCK_SIZE;
     
    580580        for (uint32_t i = 0; i < blocks; i++) {
    581581                block_t *block;
    582                 int rc = block_get(&block, fs->service_id, node->lba + i, BLOCK_FLAGS_NONE);
     582                errno_t rc = block_get(&block, fs->service_id, node->lba + i, BLOCK_FLAGS_NONE);
    583583                if (rc != EOK)
    584                         return false;
     584                        return rc;
    585585               
    586586                cdfs_dir_t *dir;
     
    614614                       
    615615                        fs_node_t *fn;
    616                         int rc = create_node(&fn, fs, dentry_type,
     616                        errno_t rc = create_node(&fn, fs, dentry_type,
    617617                            (node->lba + i) * BLOCK_SIZE + offset);
    618                         if ((rc != EOK) || (fn == NULL))
    619                                 return false;
     618                        if (rc != EOK)
     619                                return rc;
     620
     621                        assert(fn != NULL);
    620622                       
    621623                        cdfs_node_t *cur = CDFS_NODE(fn);
     
    626628                            dir->name_length, node->fs->enc, dentry_type);
    627629                        if (name == NULL)
    628                                 return false;
     630                                return EIO;
    629631                       
    630632                        // FIXME: check return value
     
    641643       
    642644        node->processed = true;
    643         return true;
     645        return EOK;
    644646}
    645647
     
    650652       
    651653        block_t *block;
    652         int rc = block_get(&block, fs->service_id, lba, BLOCK_FLAGS_NONE);
     654        errno_t rc = block_get(&block, fs->service_id, lba, BLOCK_FLAGS_NONE);
    653655        if (rc != EOK)
    654656                return NULL;
     
    696698}
    697699
    698 static int cdfs_match(fs_node_t **fn, fs_node_t *pfn, const char *component)
     700static errno_t cdfs_match(fs_node_t **fn, fs_node_t *pfn, const char *component)
    699701{
    700702        cdfs_node_t *parent = CDFS_NODE(pfn);
    701703       
    702704        if (!parent->processed) {
    703                 int rc = cdfs_readdir(parent->fs, pfn);
     705                errno_t rc = cdfs_readdir(parent->fs, pfn);
    704706                if (rc != EOK)
    705707                        return rc;
     
    717719}
    718720
    719 static int cdfs_node_open(fs_node_t *fn)
     721static errno_t cdfs_node_open(fs_node_t *fn)
    720722{
    721723        cdfs_node_t *node = CDFS_NODE(fn);
     
    728730}
    729731
    730 static int cdfs_node_put(fs_node_t *fn)
     732static errno_t cdfs_node_put(fs_node_t *fn)
    731733{
    732734        /* Nothing to do */
     
    734736}
    735737
    736 static int cdfs_create_node(fs_node_t **fn, service_id_t service_id, int lflag)
     738static errno_t cdfs_create_node(fs_node_t **fn, service_id_t service_id, int lflag)
    737739{
    738740        /* Read-only */
     
    740742}
    741743
    742 static int cdfs_destroy_node(fs_node_t *fn)
     744static errno_t cdfs_destroy_node(fs_node_t *fn)
    743745{
    744746        /* Read-only */
     
    746748}
    747749
    748 static int cdfs_link_node(fs_node_t *pfn, fs_node_t *cfn, const char *name)
     750static errno_t cdfs_link_node(fs_node_t *pfn, fs_node_t *cfn, const char *name)
    749751{
    750752        /* Read-only */
     
    752754}
    753755
    754 static int cdfs_unlink_node(fs_node_t *pfn, fs_node_t *cfn, const char *name)
     756static errno_t cdfs_unlink_node(fs_node_t *pfn, fs_node_t *cfn, const char *name)
    755757{
    756758        /* Read-only */
     
    758760}
    759761
    760 static int cdfs_has_children(bool *has_children, fs_node_t *fn)
     762static errno_t cdfs_has_children(bool *has_children, fs_node_t *fn)
    761763{
    762764        cdfs_node_t *node = CDFS_NODE(fn);
     
    804806}
    805807
    806 static int cdfs_size_block(service_id_t service_id, uint32_t *size)
     808static errno_t cdfs_size_block(service_id_t service_id, uint32_t *size)
    807809{
    808810        *size = BLOCK_SIZE;
     
    811813}
    812814
    813 static int cdfs_total_block_count(service_id_t service_id, uint64_t *count)
     815static errno_t cdfs_total_block_count(service_id_t service_id, uint64_t *count)
    814816{
    815817        *count = 0;
     
    818820}
    819821
    820 static int cdfs_free_block_count(service_id_t service_id, uint64_t *count)
     822static errno_t cdfs_free_block_count(service_id_t service_id, uint64_t *count)
    821823{
    822824        *count = 0;
     
    849851/** Verify that escape sequence corresonds to one of the allowed encoding
    850852 * escape sequences allowed for Joliet. */
    851 static int cdfs_verify_joliet_esc_seq(uint8_t *seq)
     853static errno_t cdfs_verify_joliet_esc_seq(uint8_t *seq)
    852854{
    853855        size_t i, j, k;
     
    893895 * @return              EOK if found, ENOENT if not
    894896 */
    895 static int cdfs_find_joliet_svd(service_id_t sid, cdfs_lba_t altroot,
     897static errno_t cdfs_find_joliet_svd(service_id_t sid, cdfs_lba_t altroot,
    896898    uint32_t *rlba, uint32_t *rsize, char **vol_ident)
    897899{
     
    900902        for (bi = altroot + 17; ; bi++) {
    901903                block_t *block;
    902                 int rc = block_get(&block, sid, bi, BLOCK_FLAGS_NONE);
     904                errno_t rc = block_get(&block, sid, bi, BLOCK_FLAGS_NONE);
    903905                if (rc != EOK)
    904906                        break;
     
    961963
    962964/** Read the volume descriptors. */
    963 static bool iso_read_vol_desc(service_id_t sid, cdfs_lba_t altroot,
     965static errno_t iso_read_vol_desc(service_id_t sid, cdfs_lba_t altroot,
    964966    uint32_t *rlba, uint32_t *rsize, cdfs_enc_t *enc, char **vol_ident)
    965967{
    966968        /* First 16 blocks of isofs are empty */
    967969        block_t *block;
    968         int rc = block_get(&block, sid, altroot + 16, BLOCK_FLAGS_NONE);
     970        errno_t rc = block_get(&block, sid, altroot + 16, BLOCK_FLAGS_NONE);
    969971        if (rc != EOK)
    970                 return false;
     972                return rc;
    971973       
    972974        cdfs_vol_desc_t *vol_desc = (cdfs_vol_desc_t *) block->data;
     
    980982            (vol_desc->version != 1)) {
    981983                block_put(block);
    982                 return false;
     984                return ENOTSUP;
    983985        }
    984986       
     
    10001002                 */
    10011003                block_put(block);
    1002                 return false;
     1004                return ENOTSUP;
    10031005        }
    10041006       
     
    10061008        if (block_size != BLOCK_SIZE) {
    10071009                block_put(block);
    1008                 return false;
     1010                return ENOTSUP;
    10091011        }
    10101012       
     
    10311033       
    10321034        block_put(block);
    1033         return true;
    1034 }
    1035 
    1036 static bool iso_readfs(cdfs_t *fs, fs_node_t *rfn,
     1035        return EOK;
     1036}
     1037
     1038static errno_t iso_readfs(cdfs_t *fs, fs_node_t *rfn,
    10371039    cdfs_lba_t altroot)
    10381040{
    10391041        cdfs_node_t *node = CDFS_NODE(rfn);
    10401042       
    1041         if (!iso_read_vol_desc(fs->service_id, altroot, &node->lba,
    1042             &node->size, &fs->enc, &fs->vol_ident))
    1043                 return false;
     1043        errno_t rc = iso_read_vol_desc(fs->service_id, altroot, &node->lba,
     1044            &node->size, &fs->enc, &fs->vol_ident);
     1045        if (rc != EOK)
     1046                return rc;
    10441047       
    10451048        return cdfs_readdir(fs, rfn);
     
    10611064       
    10621065        /* Create root node */
    1063         int rc = create_node(&rfn, fs, L_DIRECTORY, cdfs_index++);
     1066        errno_t rc = create_node(&rfn, fs, L_DIRECTORY, cdfs_index++);
    10641067       
    10651068        if ((rc != EOK) || (!rfn))
     
    10721075       
    10731076        /* Check if there is cdfs in given session */
    1074         if (!iso_readfs(fs, rfn, altroot))
     1077        if (iso_readfs(fs, rfn, altroot) != EOK)
    10751078                goto error;
    10761079       
     
    10831086}
    10841087
    1085 static int cdfs_fsprobe(service_id_t service_id, vfs_fs_probe_info_t *info)
     1088static errno_t cdfs_fsprobe(service_id_t service_id, vfs_fs_probe_info_t *info)
    10861089{
    10871090        char *vol_ident;
    10881091
    10891092        /* Initialize the block layer */
    1090         int rc = block_init(service_id, BLOCK_SIZE);
     1093        errno_t rc = block_init(service_id, BLOCK_SIZE);
    10911094        if (rc != EOK)
    10921095                return rc;
     
    11251128        uint32_t rsize;
    11261129        cdfs_enc_t enc;
    1127         if (!iso_read_vol_desc(service_id, altroot, &rlba, &rsize, &enc,
    1128             &vol_ident)) {
     1130        rc = iso_read_vol_desc(service_id, altroot, &rlba, &rsize, &enc,
     1131            &vol_ident);
     1132        if (rc != EOK) {
    11291133                block_cache_fini(service_id);
    11301134                block_fini(service_id);
    1131                 return EIO;
     1135                return rc;
    11321136        }
    11331137       
     
    11401144}
    11411145
    1142 static int cdfs_mounted(service_id_t service_id, const char *opts,
     1146static errno_t cdfs_mounted(service_id_t service_id, const char *opts,
    11431147    fs_index_t *index, aoff64_t *size)
    11441148{
    11451149        /* Initialize the block layer */
    1146         int rc = block_init(service_id, BLOCK_SIZE);
     1150        errno_t rc = block_init(service_id, BLOCK_SIZE);
    11471151        if (rc != EOK)
    11481152                return rc;
     
    12341238}
    12351239
    1236 static int cdfs_unmounted(service_id_t service_id)
     1240static errno_t cdfs_unmounted(service_id_t service_id)
    12371241{
    12381242        cdfs_t *fs;
     
    12461250}
    12471251
    1248 static int cdfs_read(service_id_t service_id, fs_index_t index, aoff64_t pos,
     1252static errno_t cdfs_read(service_id_t service_id, fs_index_t index, aoff64_t pos,
    12491253    size_t *rbytes)
    12501254{
     
    12621266       
    12631267        if (!node->processed) {
    1264                 int rc = cdfs_readdir(node->fs, FS_NODE(node));
     1268                errno_t rc = cdfs_readdir(node->fs, FS_NODE(node));
    12651269                if (rc != EOK)
    12661270                        return rc;
     
    12861290                       
    12871291                        block_t *block;
    1288                         int rc = block_get(&block, service_id, node->lba + lba,
     1292                        errno_t rc = block_get(&block, service_id, node->lba + lba,
    12891293                            BLOCK_FLAGS_NONE);
    12901294                        if (rc != EOK) {
     
    13171321}
    13181322
    1319 static int cdfs_write(service_id_t service_id, fs_index_t index, aoff64_t pos,
     1323static errno_t cdfs_write(service_id_t service_id, fs_index_t index, aoff64_t pos,
    13201324    size_t *wbytes, aoff64_t *nsize)
    13211325{
     
    13281332}
    13291333
    1330 static int cdfs_truncate(service_id_t service_id, fs_index_t index,
     1334static errno_t cdfs_truncate(service_id_t service_id, fs_index_t index,
    13311335    aoff64_t size)
    13321336{
     
    13691373}
    13701374
    1371 static int cdfs_close(service_id_t service_id, fs_index_t index)
     1375static errno_t cdfs_close(service_id_t service_id, fs_index_t index)
    13721376{
    13731377        /* Root node is always in memory */
     
    13951399}
    13961400
    1397 static int cdfs_destroy(service_id_t service_id, fs_index_t index)
     1401static errno_t cdfs_destroy(service_id_t service_id, fs_index_t index)
    13981402{
    13991403        /*
     
    14051409}
    14061410
    1407 static int cdfs_sync(service_id_t service_id, fs_index_t index)
     1411static errno_t cdfs_sync(service_id_t service_id, fs_index_t index)
    14081412{
    14091413        /*
Note: See TracChangeset for help on using the changeset viewer.