Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset a18bd22 in mainline


Ignore:
Timestamp:
2011-08-14T07:57:40Z (10 years ago)
Author:
Oleg Romanenko <romanenko.oleg@…>
Branches:
lfn, master
Children:
245b7945
Parents:
f7d90eb
Message:

exFAT: implement bitmap_append_clusters

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/exfat/exfat_fat.c

    rf7d90eb ra18bd22  
    520520    exfat_cluster_t count)
    521521{
    522         /* TODO */
    523         return EOK;
     522        if (nodep->firstc == 0) {
     523                return bitmap_alloc_clusters(bs, nodep->idx->devmap_handle,
     524                    &nodep->firstc, count);
     525        } else {
     526                exfat_cluster_t lastc, clst;
     527                lastc = nodep->firstc + ROUND_UP(nodep->size, BPC(bs)) / BPC(bs) - 1;
     528
     529                clst = lastc+1;
     530                while (bitmap_is_free(bs, nodep->idx->devmap_handle, clst) == EOK) {
     531                        if ((clst - lastc) == count){
     532                                return bitmap_set_clusters(bs, nodep->idx->devmap_handle,
     533                                    lastc+1, count);
     534                        }
     535                        else
     536                                clst++;
     537                }
     538                return ENOSPC;
     539        }
    524540}
    525541
Note: See TracChangeset for help on using the changeset viewer.