diff --git a/components/dfs/filesystems/uffs/dfs_uffs.c b/components/dfs/filesystems/uffs/dfs_uffs.c index 87517aaaf5d6e0fa46e92ea40d430004b797b85d..ba92452769b04561e525d75035f2a2264d6c6c7a 100644 --- a/components/dfs/filesystems/uffs/dfs_uffs.c +++ b/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 @@ -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; }