+static bool getNewPage(struct BattFsSuper *disk, pgcnt_t new_pos, inode_t inode, pgoff_t pgoff)
+{
+ if (disk->free_page_start >= disk->page_count)
+ {
+ #warning TODO space over!
+ LOG_INFO("No disk space available\n");
+ return false;
+ }
+ flushBuffer(disk);
+ LOG_INFO("Getting new page: %d\n", disk->page_array[disk->free_page_start]);
+ disk->curr_page = disk->page_array[disk->free_page_start++];
+ movePages(disk, new_pos, +1);
+ #warning TODO: move other files!
+ disk->page_array[new_pos] = disk->curr_page;
+
+ disk->curr_hdr.inode = inode;
+ disk->curr_hdr.pgoff = pgoff;
+ disk->curr_hdr.fill = 0;
+ disk->curr_hdr.seq = 0;
+ return true;
+}
+