add f_opendir to open root directory in dfs_elm_mount to make sure that there is a valid fat
partition on physical media. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2251 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
parent
3dbbc479fc
commit
063fb36089
|
@ -103,7 +103,26 @@ int dfs_elm_mount(struct dfs_filesystem *fs, unsigned long rwflag, const void *d
|
|||
/* mount fatfs, always 0 logic driver */
|
||||
result = f_mount(index, fat);
|
||||
if (result == FR_OK)
|
||||
{
|
||||
char drive[8];
|
||||
DIR * dir;
|
||||
|
||||
rt_snprintf(drive, sizeof(drive), "%d:/", fat->drv);
|
||||
dir = (DIR *)rt_malloc(sizeof(DIR));
|
||||
if (dir == RT_NULL)
|
||||
return -DFS_STATUS_ENOMEM;
|
||||
|
||||
/* open the root directory to test whether the fatfs is valid */
|
||||
result = f_opendir(dir, drive);
|
||||
if (result != FR_OK)
|
||||
{
|
||||
rt_free(dir);
|
||||
return elm_result_to_dfs(result);
|
||||
}
|
||||
rt_free(dir);
|
||||
|
||||
fs->data = fat;
|
||||
}
|
||||
else
|
||||
{
|
||||
rt_free(fat);
|
||||
|
|
Loading…
Reference in New Issue