diff options
Diffstat (limited to 'exfat/libexfat/cluster.c')
-rw-r--r-- | exfat/libexfat/cluster.c | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/exfat/libexfat/cluster.c b/exfat/libexfat/cluster.c index 80e3792dd..2215636c6 100644 --- a/exfat/libexfat/cluster.c +++ b/exfat/libexfat/cluster.c @@ -3,7 +3,7 @@ exFAT file system implementation library. Free exFAT implementation. - Copyright (C) 2010-2014 Andrew Nayenko + Copyright (C) 2010-2013 Andrew Nayenko This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -83,9 +83,9 @@ cluster_t exfat_next_cluster(const struct exfat* ef, return cluster + 1; fat_offset = s2o(ef, le32_to_cpu(ef->sb->fat_sector_start)) + cluster * sizeof(cluster_t); + /* FIXME handle I/O error */ if (exfat_pread(ef->dev, &next, sizeof(next), fat_offset) < 0) - return EXFAT_CLUSTER_BAD; /* the caller should handle this and print - appropriate error message */ + exfat_bug("failed to read the next cluster after %#x", cluster); return le32_to_cpu(next); } @@ -136,23 +136,8 @@ static cluster_t find_bit_and_set(bitmap_t* bitmap, size_t start, size_t end) return EXFAT_CLUSTER_END; } -static int flush_nodes(struct exfat* ef, struct exfat_node* node) -{ - struct exfat_node* p; - - for (p = node->child; p != NULL; p = p->next) - { - int rc = flush_nodes(ef, p); - if (rc != 0) - return rc; - } - return exfat_flush_node(ef, node); -} - int exfat_flush(struct exfat* ef) { - int rc = flush_nodes(ef, ef->root); - if (ef->cmap.dirty) { if (exfat_pwrite(ef->dev, ef->cmap.chunk, @@ -164,8 +149,7 @@ int exfat_flush(struct exfat* ef) } ef->cmap.dirty = false; } - - return rc; + return 0; } static bool set_next_cluster(const struct exfat* ef, bool contiguous, @@ -332,7 +316,6 @@ static int shrink_file(struct exfat* ef, struct exfat_node* node, { previous = node->start_cluster; node->start_cluster = EXFAT_CLUSTER_FREE; - node->flags |= EXFAT_ATTRIB_DIRTY; } node->fptr_index = 0; node->fptr_cluster = node->start_cluster; |