From: relan Date: Tue, 27 Dec 2016 06:18:58 +0000 (+0300) Subject: Rename node field flags to attrib. X-Git-Tag: android-x86-9.0-r1~64 X-Git-Url: http://git.osdn.net/view?p=android-x86%2Fexternal-exfat.git;a=commitdiff_plain;h=27bc40ffd7030613516f27dbe40227f89b06b70f Rename node field flags to attrib. Now it contains only exFAT attributes (from meta2). --- diff --git a/fsck/main.c b/fsck/main.c index 700c83c..67435cf 100644 --- a/fsck/main.c +++ b/fsck/main.c @@ -72,8 +72,8 @@ static void dirck(struct exfat* ef, const char* path) if (exfat_lookup(ef, &parent, path) != 0) exfat_bug("directory '%s' is not found", path); - if (!(parent->flags & EXFAT_ATTRIB_DIR)) - exfat_bug("'%s' is not a directory (0x%x)", path, parent->flags); + if (!(parent->attrib & EXFAT_ATTRIB_DIR)) + exfat_bug("'%s' is not a directory (%#hx)", path, parent->attrib); if (nodeck(ef, parent) != 0) { exfat_put_node(ef, parent); @@ -104,7 +104,7 @@ static void dirck(struct exfat* ef, const char* path) exfat_debug("%s: %s, %"PRIu64" bytes, cluster %u", entry_path, node->is_contiguous ? "contiguous" : "fragmented", node->size, node->start_cluster); - if (node->flags & EXFAT_ATTRIB_DIR) + if (node->attrib & EXFAT_ATTRIB_DIR) { directories_count++; dirck(ef, entry_path); diff --git a/fuse/main.c b/fuse/main.c index efa5bfa..51d2dfd 100644 --- a/fuse/main.c +++ b/fuse/main.c @@ -111,10 +111,10 @@ static int fuse_exfat_readdir(const char* path, void* buffer, rc = exfat_lookup(&ef, &parent, path); if (rc != 0) return rc; - if (!(parent->flags & EXFAT_ATTRIB_DIR)) + if (!(parent->attrib & EXFAT_ATTRIB_DIR)) { exfat_put_node(&ef, parent); - exfat_error("'%s' is not a directory (0x%x)", path, parent->flags); + exfat_error("'%s' is not a directory (%#hx)", path, parent->attrib); return -ENOTDIR; } diff --git a/libexfat/exfat.h b/libexfat/exfat.h index 4b8cf69..2a592a0 100644 --- a/libexfat/exfat.h +++ b/libexfat/exfat.h @@ -78,7 +78,7 @@ struct exfat_node cluster_t entry_cluster; off_t entry_offset; cluster_t start_cluster; - int flags; + uint16_t attrib; bool is_contiguous : 1; bool is_cached : 1; bool is_dirty : 1; diff --git a/libexfat/mount.c b/libexfat/mount.c index b1ce654..f53b55a 100644 --- a/libexfat/mount.c +++ b/libexfat/mount.c @@ -287,7 +287,7 @@ int exfat_mount(struct exfat* ef, const char* spec, const char* options) return -ENOMEM; } memset(ef->root, 0, sizeof(struct exfat_node)); - ef->root->flags = EXFAT_ATTRIB_DIR; + ef->root->attrib = EXFAT_ATTRIB_DIR; ef->root->start_cluster = le32_to_cpu(ef->sb->rootdir_cluster); ef->root->fptr_cluster = ef->root->start_cluster; ef->root->name[0] = cpu_to_le16('\0'); diff --git a/libexfat/node.c b/libexfat/node.c index 6c23f14..d64ae29 100644 --- a/libexfat/node.c +++ b/libexfat/node.c @@ -96,7 +96,7 @@ static int opendir(struct exfat* ef, const struct exfat_node* dir, { char buffer[EXFAT_UTF8_NAME_BUFFER_MAX]; - if (!(dir->flags & EXFAT_ATTRIB_DIR)) + if (!(dir->attrib & EXFAT_ATTRIB_DIR)) { exfat_get_name(dir, buffer); exfat_bug("'%s' is not a directory", buffer); @@ -181,7 +181,7 @@ static struct exfat_node* allocate_node(void) static void init_node_meta1(struct exfat_node* node, const struct exfat_entry_meta1* meta1) { - node->flags = le16_to_cpu(meta1->attrib); + node->attrib = le16_to_cpu(meta1->attrib); node->mtime = exfat_exfat2unix(meta1->mdate, meta1->mtime, meta1->mtime_cs); /* there is no centiseconds field for atime */ @@ -261,13 +261,13 @@ static bool check_node(const struct exfat_node* node, uint16_t actual_checksum, if (node->size == 0 && node->is_contiguous) { exfat_get_name(node, buffer); - exfat_error("'%s' is empty but marked as contiguous (%#x)", buffer, - node->flags); + exfat_error("'%s' is empty but marked as contiguous (%#hx)", buffer, + node->attrib); ret = false; } /* Directory size must be aligned on at cluster boundary. */ - if ((node->flags & EXFAT_ATTRIB_DIR) && node->size % cluster_size != 0) + if ((node->attrib & EXFAT_ATTRIB_DIR) && node->size % cluster_size != 0) { exfat_get_name(node, buffer); exfat_error("'%s' directory size %"PRIu64" is not divisible by %d", buffer, @@ -704,7 +704,7 @@ int exfat_flush_node(struct exfat* ef, struct exfat_node* node) } if (meta1.type != EXFAT_ENTRY_FILE) exfat_bug("invalid type of meta1: 0x%hhx", meta1.type); - meta1.attrib = cpu_to_le16(node->flags); + meta1.attrib = cpu_to_le16(node->attrib); exfat_unix2exfat(node->mtime, &meta1.mdate, &meta1.mtime, &meta1.mtime_cs); exfat_unix2exfat(node->atime, &meta1.adate, &meta1.atime, NULL); @@ -786,7 +786,7 @@ static int shrink_directory(struct exfat* ef, struct exfat_node* dir, uint64_t entries = 0; uint64_t new_size; - if (!(dir->flags & EXFAT_ATTRIB_DIR)) + if (!(dir->attrib & EXFAT_ATTRIB_DIR)) exfat_bug("attempted to shrink a file"); if (!dir->is_cached) exfat_bug("attempted to shrink uncached directory"); @@ -852,7 +852,7 @@ static int delete(struct exfat* ef, struct exfat_node* node) int exfat_unlink(struct exfat* ef, struct exfat_node* node) { - if (node->flags & EXFAT_ATTRIB_DIR) + if (node->attrib & EXFAT_ATTRIB_DIR) return -EISDIR; return delete(ef, node); } @@ -861,7 +861,7 @@ int exfat_rmdir(struct exfat* ef, struct exfat_node* node) { int rc; - if (!(node->flags & EXFAT_ATTRIB_DIR)) + if (!(node->attrib & EXFAT_ATTRIB_DIR)) return -ENOTDIR; /* check that directory is empty */ rc = exfat_cache_directory(ef, node); @@ -1166,7 +1166,7 @@ int exfat_rename(struct exfat* ef, const char* old_path, const char* new_path) } /* check that target is not a subdirectory of the source */ - if (node->flags & EXFAT_ATTRIB_DIR) + if (node->attrib & EXFAT_ATTRIB_DIR) { struct exfat_node* p; @@ -1186,16 +1186,16 @@ int exfat_rename(struct exfat* ef, const char* old_path, const char* new_path) /* remove target if it's not the same node as source */ if (existing != node) { - if (existing->flags & EXFAT_ATTRIB_DIR) + if (existing->attrib & EXFAT_ATTRIB_DIR) { - if (node->flags & EXFAT_ATTRIB_DIR) + if (node->attrib & EXFAT_ATTRIB_DIR) rc = exfat_rmdir(ef, existing); else rc = -ENOTDIR; } else { - if (!(node->flags & EXFAT_ATTRIB_DIR)) + if (!(node->attrib & EXFAT_ATTRIB_DIR)) rc = exfat_unlink(ef, existing); else rc = -EISDIR; diff --git a/libexfat/utils.c b/libexfat/utils.c index e2c85f2..c633a29 100644 --- a/libexfat/utils.c +++ b/libexfat/utils.c @@ -29,7 +29,7 @@ void exfat_stat(const struct exfat* ef, const struct exfat_node* node, struct stat* stbuf) { memset(stbuf, 0, sizeof(struct stat)); - if (node->flags & EXFAT_ATTRIB_DIR) + if (node->attrib & EXFAT_ATTRIB_DIR) stbuf->st_mode = S_IFDIR | (0777 & ~ef->dmask); else stbuf->st_mode = S_IFREG | (0777 & ~ef->fmask);