summaryrefslogtreecommitdiff
path: root/components/dfs
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2017-04-11 09:33:25 +0800
committerBernard Xiong <[email protected]>2017-04-11 09:33:25 +0800
commit5502558df94f2636c0e7a4449ec0bc572efc3e1a (patch)
tree407a9da70f5ff9a90a32ef43dbad892a04c091d3 /components/dfs
parent85cdcab4608bc37d1c20581a979fe2d8fa1df26e (diff)
[DFS] fix the st_blksize issue in elm fatfs.
Diffstat (limited to 'components/dfs')
-rw-r--r--components/dfs/filesystems/elmfat/dfs_elm.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/components/dfs/filesystems/elmfat/dfs_elm.c b/components/dfs/filesystems/elmfat/dfs_elm.c
index b73948dd4c..4fa9f3c84b 100644
--- a/components/dfs/filesystems/elmfat/dfs_elm.c
+++ b/components/dfs/filesystems/elmfat/dfs_elm.c
@@ -27,6 +27,7 @@
* 2013-03-01 aozima fixed the stat(st_mtime) issue.
* 2014-01-26 Bernard Check the sector size before mount.
* 2017-02-13 Hichard Update Fatfs version to 0.12b, support exFAT.
+ * 2017-04-11 Bernard fix the st_blksize issue.
*/
#include <rtthread.h>
@@ -112,7 +113,7 @@ int dfs_elm_mount(struct dfs_filesystem *fs, unsigned long rwflag, const void *d
FATFS *fat;
FRESULT result;
int index;
- struct rt_device_blk_geometry geometry;
+ struct rt_device_blk_geometry geometry;
/* get an empty position */
index = get_disk(RT_NULL);
@@ -121,16 +122,16 @@ int dfs_elm_mount(struct dfs_filesystem *fs, unsigned long rwflag, const void *d
/* save device */
disk[index] = fs->dev_id;
- /* check sector size */
- if (rt_device_control(fs->dev_id, RT_DEVICE_CTRL_BLK_GETGEOME, &geometry) == RT_EOK)
- {
- if (geometry.bytes_per_sector > _MAX_SS)
- {
- rt_kprintf("The sector size of device is greater than the sector size of FAT.\n");
- return -DFS_STATUS_EINVAL;
- }
- }
-
+ /* check sector size */
+ if (rt_device_control(fs->dev_id, RT_DEVICE_CTRL_BLK_GETGEOME, &geometry) == RT_EOK)
+ {
+ if (geometry.bytes_per_sector > _MAX_SS)
+ {
+ rt_kprintf("The sector size of device is greater than the sector size of FAT.\n");
+ return -DFS_STATUS_EINVAL;
+ }
+ }
+
fat = (FATFS *)rt_malloc(sizeof(FATFS));
if (fat == RT_NULL)
{
@@ -208,12 +209,12 @@ int dfs_elm_mkfs(rt_device_t dev_id)
int flag;
FRESULT result;
int index;
-
+
work = rt_malloc(_MAX_SS);
if(RT_NULL == work) {
return -DFS_STATUS_ENOMEM;
}
-
+
if (dev_id == RT_NULL)
return -DFS_STATUS_EINVAL;
@@ -733,7 +734,6 @@ int dfs_elm_stat(struct dfs_filesystem *fs, const char *path, struct stat *st)
st->st_mode &= ~(DFS_S_IWUSR | DFS_S_IWGRP | DFS_S_IWOTH);
st->st_size = file_info.fsize;
- st->st_blksize = 512;
/* get st_mtime. */
{