Skip to content

Commit

Permalink
feat(spiffs): add fsync() support to SPIFFS VFS driver
Browse files Browse the repository at this point in the history
Closes #12693

Signed-off-by: sonika.rathi <sonika.rathi@espressif.com>
  • Loading branch information
al-s authored and RathiSonika committed Jul 29, 2024
1 parent d839ea6 commit da42024
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions components/spiffs/esp_spiffs.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ static ssize_t vfs_spiffs_read(void* ctx, int fd, void * dst, size_t size);
static int vfs_spiffs_close(void* ctx, int fd);
static off_t vfs_spiffs_lseek(void* ctx, int fd, off_t offset, int mode);
static int vfs_spiffs_fstat(void* ctx, int fd, struct stat * st);
static int vfs_spiffs_fsync(void* ctx, int fd);
#ifdef CONFIG_VFS_SUPPORT_DIR
static int vfs_spiffs_stat(void* ctx, const char * path, struct stat * st);
static int vfs_spiffs_unlink(void* ctx, const char *path);
Expand Down Expand Up @@ -426,6 +427,7 @@ esp_err_t esp_vfs_spiffs_register(const esp_vfs_spiffs_conf_t * conf)
.open_p = &vfs_spiffs_open,
.close_p = &vfs_spiffs_close,
.fstat_p = &vfs_spiffs_fstat,
.fsync_p = &vfs_spiffs_fsync,
#ifdef CONFIG_VFS_SUPPORT_DIR
.stat_p = &vfs_spiffs_stat,
.link_p = &vfs_spiffs_link,
Expand Down Expand Up @@ -617,6 +619,18 @@ static int vfs_spiffs_fstat(void* ctx, int fd, struct stat * st)
return res;
}

static int vfs_spiffs_fsync(void* ctx, int fd)
{
esp_spiffs_t * efs = (esp_spiffs_t *)ctx;
int res = SPIFFS_fflush(efs->fs, fd);
if (res < 0) {
errno = spiffs_res_to_errno(SPIFFS_errno(efs->fs));
SPIFFS_clearerr(efs->fs);
return -1;
}
return res;
}

#ifdef CONFIG_VFS_SUPPORT_DIR

static int vfs_spiffs_stat(void* ctx, const char * path, struct stat * st)
Expand Down

0 comments on commit da42024

Please sign in to comment.