Subversion Repositories HelenOS

Rev

Rev 3510 | Rev 3513 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3510 Rev 3512
Line 283... Line 283...
283
     */
283
     */
284
    for (b = 0, cl = 0; b < sf; blk++) {
284
    for (b = 0, cl = 0; b < sf; blk++) {
285
        blk = block_get(dev_handle, rscnt + b, bps);
285
        blk = block_get(dev_handle, rscnt + b, bps);
286
        for (c = 0; c < bps / sizeof(fat_cluster_t); c++, cl++) {
286
        for (c = 0; c < bps / sizeof(fat_cluster_t); c++, cl++) {
287
            fat_cluster_t *clst = (fat_cluster_t *)blk->data + c;
287
            fat_cluster_t *clst = (fat_cluster_t *)blk->data + c;
288
            if (*clst == FAT_CLST_RES0) {
288
            if (uint16_t_le2host(*clst) == FAT_CLST_RES0) {
289
                /*
289
                /*
290
                 * The cluster is free. Put it into our stack
290
                 * The cluster is free. Put it into our stack
291
                 * of found clusters and mark it as non-free.
291
                 * of found clusters and mark it as non-free.
292
                 */
292
                 */
293
                lifo[found] = cl;
293
                lifo[found] = cl;
294
                if (found == 0)
294
                *clst = (found == 0) ?
295
                    *clst = FAT_CLST_LAST1;
295
                    host2uint16_t_le(FAT_CLST_LAST1) :
296
                else
-
 
297
                    *clst = lifo[found - 1];
296
                    host2uint16_t_le(lifo[found - 1]);
298
                blk->dirty = true;  /* need to sync block */
297
                blk->dirty = true;  /* need to sync block */
299
                if (++found == nclsts) {
298
                if (++found == nclsts) {
300
                    /* we are almost done */
299
                    /* we are almost done */
301
                    block_put(blk);
300
                    block_put(blk);
302
                    /* update the shadow copies of FAT */
301
                    /* update the shadow copies of FAT */