Fix move page bug; add battfs_close.
authorbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Sun, 10 Feb 2008 14:32:54 +0000 (14:32 +0000)
committerbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Sun, 10 Feb 2008 14:32:54 +0000 (14:32 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1100 38d2e660-2303-0410-9eaa-f027e97ec537

fs/battfs.c
fs/battfs.h

index 21d44d8d01d826d57e9be0ff73268a6177d3674e..97bc897d148e7ceaba7e3c3ac583385bfe032632 100644 (file)
@@ -212,7 +212,7 @@ static pgcnt_t countPages(pgoff_t *filelen_table, inode_t inode)
 static void movePages(struct BattFsSuper *disk, pgcnt_t src, int offset)
 {
        pgcnt_t dst = src + offset;
-       memmove(&disk->page_array[dst], &disk->page_array[src], disk->page_count - MAX(dst, src) * sizeof(pgcnt_t));
+       memmove(&disk->page_array[dst], &disk->page_array[src], (disk->page_count - MAX(dst, src)) * sizeof(pgcnt_t));
        
        if (offset < 0)
        {
@@ -588,11 +588,18 @@ bool battfs_init(struct BattFsSuper *disk)
        return true;    
 }
 
+/**
+ * Close \a disk.
+ */
+bool battfs_close(struct BattFsSuper *disk)
+{
+       return disk->close(disk);
+}
+
 
 bool battfs_writeTestBlock(struct BattFsSuper *disk, pgcnt_t page, inode_t inode, seq_t seq, fill_t fill, pgoff_t pgoff, mark_t mark)
 {
        BattFsPageHeader hdr;
-       TRACEMSG("page %d, inode %d, pgoff %d\n", page, inode, pgoff);
 
        hdr.inode = inode;
        hdr.seq = seq;
index c155b61ee2e17a11e657cc550930d1267bb06499..f7518ced38104137c03cd96539097890b3a2471c 100644 (file)
@@ -215,6 +215,8 @@ typedef struct BattFsSuper
 } BattFsSuper;
 
 bool battfs_init(struct BattFsSuper *d);
+bool battfs_close(struct BattFsSuper *disk);
+
 bool battfs_writeTestBlock(struct BattFsSuper *disk, pgcnt_t page, inode_t inode, seq_t seq, fill_t fill, pgoff_t pgoff, mark_t mark);
 
 #endif /* FS_BATTFS_H */