Pastos.
[bertos.git] / fs / battfs.c
index a2a0326e02a8a3a18597c925f3243815477a9b85..8d02d94f5fcbfacf38ef9fafdaa17e64107c442a 100644 (file)
@@ -319,7 +319,7 @@ bool battfs_init(struct BattFsSuper *disk)
                        {
                                BattFsPageHeader hdr_old;
                                
-                               if (!battfs_readHeader(disk, page, &hdr_old))
+                               if (!battfs_readHeader(disk, disk->page_array[array_pos], &hdr_old))
                                        return false;
 
                                #ifdef _DEBUG
@@ -339,6 +339,7 @@ bool battfs_init(struct BattFsSuper *disk)
                                pgcnt_t new_page, old_page;
                                fill_t old_fill;
 
+                               #warning fix seq wraparound!
                                if (hdr.seq > hdr_old.seq)
                                {
                                        /* Actual header is newer than the previuos one */
@@ -358,7 +359,7 @@ bool battfs_init(struct BattFsSuper *disk)
                                disk->page_array[array_pos] = new_page;
 
                                /* Add free space */
-                               disk->free_bytes -= disk->page_size - sizeof(BattFsPageHeader) - old_fill;
+                               disk->free_bytes += old_fill;
 
                                /* Shift all array one position to the left, overwriting duplicate page */
                                array_pos -= hdr.pgoff;