From ed76758ac9c0ea68966ffb0f2f9661f46a78d1ea Mon Sep 17 00:00:00 2001
From: ave <ave@ave.zone>
Date: Thu, 21 Sep 2023 13:54:32 +0200
Subject: [PATCH] fix total blocks on statvfs

---
 components/micropython/vendor/extmod/vfs_posix.c           | 2 +-
 components/micropython/vendor/ports/esp32/flow3r_statvfs.c | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/components/micropython/vendor/extmod/vfs_posix.c b/components/micropython/vendor/extmod/vfs_posix.c
index bb39e7b98f..b6c55610a1 100644
--- a/components/micropython/vendor/extmod/vfs_posix.c
+++ b/components/micropython/vendor/extmod/vfs_posix.c
@@ -348,7 +348,7 @@ STATIC mp_obj_t vfs_posix_statvfs(mp_obj_t self_in, mp_obj_t path_in) {
     mp_obj_tuple_t *t = MP_OBJ_TO_PTR(mp_obj_new_tuple(10, NULL));
     t->items[0] = MP_OBJ_NEW_SMALL_INT(0); // bsize
     t->items[1] = MP_OBJ_NEW_SMALL_INT(statvfs_array[1]); // frsize
-    t->items[2] = MP_OBJ_NEW_SMALL_INT(0); // blocks
+    t->items[2] = MP_OBJ_NEW_SMALL_INT(statvfs_array[2]); // blocks
     t->items[3] = MP_OBJ_NEW_SMALL_INT(statvfs_array[3]); // bfree
     t->items[4] = MP_OBJ_NEW_SMALL_INT(statvfs_array[4]); // bavail
     t->items[5] = MP_OBJ_NEW_SMALL_INT(0);
diff --git a/components/micropython/vendor/ports/esp32/flow3r_statvfs.c b/components/micropython/vendor/ports/esp32/flow3r_statvfs.c
index 8997891b80..5b97602d66 100644
--- a/components/micropython/vendor/ports/esp32/flow3r_statvfs.c
+++ b/components/micropython/vendor/ports/esp32/flow3r_statvfs.c
@@ -13,6 +13,7 @@ void get_statvfs(char* drive, uint32_t *out) {
     uint32_t sector_size = fs->ssize;
 
     out[1] = fs->ssize;  // frsize, mapped to sector size
+    out[2] = tot_sect;  // blocks, mapped to total sectors
     out[3] = fre_sect;  // bfree, mapped to free sectors
-    out[4] = tot_sect;  // bavail, mapped to total sectors
+    out[4] = fre_sect;  // bavail, mapped to free sectors
 }
-- 
GitLab