static int commit_super_block(const struct exfat* ef) { if (exfat_pwrite(ef->dev, ef->sb, sizeof(struct exfat_super_block), 0) < 0) { exfat_error("failed to write super block"); return 1; } return exfat_fsync(ef->dev); }
static int fuse_exfat_fsync(const char* path, int datasync, struct fuse_file_info *fi) { int rc; exfat_debug("[%s] %s", __func__, path); rc = exfat_flush(&ef); if (rc != 0) return rc; return exfat_fsync(ef.dev); }
int mkfs(struct exfat_dev* dev, off64_t volume_size) { if (check_size(volume_size) != 0) return 1; fputs("Creating... ", stdout); fflush(stdout); if (erase(dev) != 0) return 1; if (create(dev) != 0) return 1; puts("done."); fputs("Flushing... ", stdout); fflush(stdout); if (exfat_fsync(dev) != 0) return 1; puts("done."); return 0; }
int exfat_sync(struct exfat* ef) { ef->bytes_written = 0; return exfat_fsync(ef->dev); }