Browse Source

fix the f_bsize and f_blocks issue in function dfs_uffs_statfs

lizhen9880 8 years ago
parent
commit
d883f7e23b
1 changed files with 4 additions and 4 deletions
  1. 4 4
      components/dfs/filesystems/uffs/dfs_uffs.c

+ 4 - 4
components/dfs/filesystems/uffs/dfs_uffs.c

@@ -22,6 +22,7 @@
  * 2011-10-22     prife        the first version
  * 2012-03-28     prife        use mtd device interface
  * 2012-04-05     prife        update uffs with official repo and use uffs_UnMount/Mount
+ * 2017-04-12     lizhen9880   fix the f_bsize and f_blocks issue in function dfs_uffs_statfs
  */
 
 #include <rtthread.h>
@@ -278,10 +279,9 @@ static int dfs_uffs_statfs(struct dfs_filesystem* fs,
 	if (index == UFFS_DEVICE_MAX)
 		return -DFS_STATUS_ENOENT;
 	
-	buf->f_bsize = mtd->page_size;
-	buf->f_blocks = mtd->pages_per_block*
-	                (mtd->block_end - mtd->block_start + 1);
-	buf->f_bfree = uffs_GetDeviceFree(&nand_part[index].uffs_dev) / mtd->page_size;
+	buf->f_bsize = mtd->page_size*mtd->pages_per_block;
+	buf->f_blocks = (mtd->block_end - mtd->block_start + 1);
+	buf->f_bfree = uffs_GetDeviceFree(&nand_part[index].uffs_dev)/buf->f_bsize ;
 	
 	return 0;
 }