int exfat_mount(struct exfat* ef, const char* spec, const char* options)
{
uint16_t fs_version;
int exfat_mount(struct exfat* ef, const char* spec, const char* options)
{
uint16_t fs_version;
tzset();
memset(ef, 0, sizeof(struct exfat));
tzset();
memset(ef, 0, sizeof(struct exfat));
/* always keep at least 1 reference to the root node */
exfat_get_node(ef->root);
/* always keep at least 1 reference to the root node */
exfat_get_node(ef->root);
+ rc = exfat_cache_directory(ef, ef->root);
+ if (rc != 0)
+ {
+ free(ef->root);
+ free(ef->zero_block);
+ close(ef->fd);
+ free(ef->sb);
+ return rc;
+ }
+