Changeset 2f636b6 in mainline


Ignore:
Timestamp:
2009-09-03T15:04:59Z (15 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d044447, f6b5593
Parents:
cca29e3c
Message:

Do not abort in fat_alloc_clusters() when an I/O error is detected.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/fat/fat_fat.c

    rcca29e3c r2f636b6  
    379379        for (b = 0, cl = 0; b < sf; b++) {
    380380                rc = block_get(&blk, dev_handle, rscnt + b, BLOCK_FLAGS_NONE);
     381                if (rc != EOK)
     382                        goto error;
    381383                for (c = 0; c < bps / sizeof(fat_cluster_t); c++, cl++) {
    382384                        fat_cluster_t *clst = (fat_cluster_t *)blk->data + c;
     
    394396                                        /* we are almost done */
    395397                                        rc = block_put(blk);
    396                                         assert(rc == EOK);
     398                                        if (rc != EOK)
     399                                                goto error;
    397400                                        /* update the shadow copies of FAT */
    398401                                        rc = fat_alloc_shadow_clusters(bs,
    399402                                            dev_handle, lifo, nclsts);
    400                                         assert(rc == EOK);
     403                                        if (rc != EOK)
     404                                                goto error;
    401405                                        *mcl = lifo[found - 1];
    402406                                        *lcl = lifo[0];
     
    408412                }
    409413                rc = block_put(blk);
    410                 assert(rc == EOK);
     414                if (rc != EOK) {
     415error:
     416                        fibril_mutex_unlock(&fat_alloc_lock);
     417                        free(lifo);
     418                        return rc;
     419                }
    411420        }
    412421        fibril_mutex_unlock(&fat_alloc_lock);
Note: See TracChangeset for help on using the changeset viewer.