| /fs/exfat/ |
| A D | mount.c | 161 if (ef->ro) in exfat_soil_super_block() 249 ef->sb->sector_bits, ef->sb->spc_bits); in exfat_mount() 253 ef->zero_cluster = malloc(CLUSTER_SIZE(*ef->sb)); in exfat_mount() 261 if (!verify_vbr_checksum(ef, ef->zero_cluster)) in exfat_mount() 266 memset(ef->zero_cluster, 0, CLUSTER_SIZE(*ef->sb)); in exfat_mount() 270 ef->sb->version.major, ef->sb->version.minor); in exfat_mount() 313 ef->root->fptr_cluster = ef->root->start_cluster; in exfat_mount() 315 ef->root->valid_size = ef->root->size = rootdir_size(ef); in exfat_mount() 327 rc = exfat_cache_directory(ef, ef->root); in exfat_mount() 344 exfat_put_node(ef, ef->root); in exfat_mount() [all …]
|
| A D | cluster.c | 52 return s2o(ef, c2s(ef, cluster)); in exfat_c2o() 84 fat_offset = s2o(ef, le32_to_cpu(ef->sb->fat_sector_start)) in exfat_next_cluster() 154 return flush_nodes(ef, ef->root); in exfat_flush_nodes() 161 if (exfat_pwrite(ef->dev, ef->cmap.chunk, in exfat_flush() 163 exfat_c2o(ef, ef->cmap.start_cluster)) < 0) in exfat_flush() 182 fat_offset = s2o(ef, le32_to_cpu(ef->sb->fat_sector_start)) in set_next_cluster() 219 ef->cmap.size); in free_cluster() 363 if (exfat_pwrite(ef->dev, ef->zero_cluster, size, offset) < 0) in erase_raw() 390 exfat_c2o(ef, cluster) + begin % CLUSTER_SIZE(*ef->sb))) in erase_range() 399 if (!erase_raw(ef, CLUSTER_SIZE(*ef->sb), exfat_c2o(ef, cluster))) in erase_range() [all …]
|
| A D | node.c | 468 if (CLUSTER_INVALID(*ef->sb, ef->cmap.start_cluster)) in readdir() 474 ef->cmap.size = le32_to_cpu(ef->sb->cluster_count); in readdir() 484 ef->cmap.chunk_size = ef->cmap.size; in readdir() 485 ef->cmap.chunk = malloc(BMAP_SIZE(ef->cmap.chunk_size)); in readdir() 493 if (exfat_pread(ef->dev, ef->cmap.chunk, in readdir() 495 exfat_c2o(ef, ef->cmap.start_cluster)) < 0) in readdir() 625 reset_cache(ef, ef->root); in exfat_reset_cache() 639 if (ef->ro) in exfat_flush_node() 749 CLUSTER_SIZE(*ef->sb)) * CLUSTER_SIZE(*ef->sb); in shrink_directory() 1204 rc = read_entries(ef, ef->root, &entry, 1, *offset); in find_label() [all …]
|
| A D | lookup.c | 38 exfat_put_node(ef, dir); in exfat_opendir() 44 exfat_put_node(ef, it->parent); in exfat_closedir() 64 return (int) ef->upcase[a] - (int) ef->upcase[b]; in compare_char() 100 exfat_closedir(ef, &it); in lookup_name() 103 exfat_put_node(ef, *node); in lookup_name() 105 exfat_closedir(ef, &it); in lookup_name() 138 exfat_put_node(ef, parent); in exfat_lookup() 141 exfat_put_node(ef, parent); in exfat_lookup() 194 exfat_put_node(ef, *parent); in exfat_split() 215 exfat_put_node(ef, *parent); in exfat_split() [all …]
|
| A D | exfat.h | 71 #define EXFAT_REPAIR(hook, ef, ...) \ argument 72 (exfat_ask_to_fix(ef) && exfat_fix_ ## hook(ef, __VA_ARGS__)) 191 cluster_t exfat_next_cluster(const struct exfat* ef, 195 int exfat_flush_nodes(struct exfat* ef); 196 int exfat_flush(struct exfat* ef); 230 void exfat_reset_cache(struct exfat* ef); 234 int exfat_mknod(struct exfat* ef, const char* path); 241 const char* exfat_get_label(struct exfat* ef); 245 int exfat_soil_super_block(const struct exfat* ef); 247 void exfat_unmount(struct exfat* ef); [all …]
|
| A D | io.c | 55 struct exfat ef; member 507 cluster = exfat_advance_cluster(ef, node, offset / CLUSTER_SIZE(*ef->sb)); in exfat_generic_pread() 535 if (!(node->attrib & EXFAT_ATTRIB_DIR) && !ef->ro && !ef->noatime) in exfat_generic_pread() 563 cluster = exfat_advance_cluster(ef, node, offset / CLUSTER_SIZE(*ef->sb)); in exfat_generic_pwrite() 813 exfat_closedir(&ctxt.ef, &it); in exfat_fs_readdir() 867 exfat_closedir(&ctxt.ef, &it); in exfat_fs_ls() 883 exfat_put_node(&ctxt.ef, node); in exfat_fs_exists() 899 exfat_put_node(&ctxt.ef, node); in exfat_fs_size() 929 exfat_put_node(&ctxt.ef, node); in exfat_fs_read() 955 exfat_put_node(&ctxt.ef, node); in exfat_fs_unlink() [all …]
|
| A D | repair.c | 30 bool exfat_ask_to_fix(const struct exfat* ef) in exfat_ask_to_fix() argument 38 switch (ef->repair) in exfat_ask_to_fix() 70 exfat_bug("invalid repair option value: %d", ef->repair); in exfat_ask_to_fix() 76 bool exfat_fix_invalid_vbr_checksum(const struct exfat* ef, void* sector, in exfat_fix_invalid_vbr_checksum() argument 80 off_t sector_size = SECTOR_SIZE(*ef->sb); in exfat_fix_invalid_vbr_checksum() 84 if (exfat_pwrite(ef->dev, sector, sector_size, 11 * sector_size) < 0) in exfat_fix_invalid_vbr_checksum() 93 bool exfat_fix_invalid_node_checksum(UNUSED const struct exfat* ef, in exfat_fix_invalid_node_checksum() argument 103 bool exfat_fix_unknown_entry(struct exfat* ef, struct exfat_node* dir, in exfat_fix_unknown_entry() argument 109 if (exfat_generic_pwrite(ef, dir, &deleted, sizeof(struct exfat_entry), in exfat_fix_unknown_entry()
|
| A D | utils.c | 28 void exfat_stat(const struct exfat* ef, const struct exfat_node* node, in exfat_stat() argument 33 stbuf->st_mode = S_IFDIR | (0777 & ~ef->dmask); in exfat_stat() 35 stbuf->st_mode = S_IFREG | (0777 & ~ef->fmask); in exfat_stat() 37 stbuf->st_uid = ef->uid; in exfat_stat() 38 stbuf->st_gid = ef->gid; in exfat_stat() 40 stbuf->st_blocks = ROUND_UP(node->size, CLUSTER_SIZE(*ef->sb)) / 512; in exfat_stat() 118 le16_t exfat_calc_name_hash(const struct exfat* ef, const le16_t* name, in exfat_calc_name_hash() argument 129 c = ef->upcase[c]; in exfat_calc_name_hash()
|