提交 853b1259 编写于 作者: G goprife@gmail.com

add chk_mounted in dfs_elm_mount to make sure that there is a valid fat...

add chk_mounted 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@2248 bbd45198-f89e-11dd-88c7-29a3b14d5316
上级 6c430282
......@@ -103,7 +103,27 @@ 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)
{
extern FRESULT chk_mounted(const TCHAR **path, FATFS **rfs, BYTE chk_wp);
extern void leavefs(FATFS* fs, int res);
char driver[16];
const char * path;
DIR dj;
path = (const char *)driver;
rt_snprintf(driver, sizeof(driver), "%d:/", fat->drv);
#if !_FS_READONLY
result = chk_mounted(&path, &dj.fs, 1);
#else
result = chk_mounted(&path, &dj.fs, 0);
#endif
if (result != FR_OK)
{
rt_free(fat);
return -1;
}
leavefs(dj.fs, result);
fs->data = fat;
}
else
{
rt_free(fat);
......
......@@ -2004,7 +2004,7 @@ BYTE check_fs ( /* 0:The FAT BR, 1:Valid BR but not an FAT, 2:Not a BR, 3:Disk e
/* Check if the file system object is valid or not */
/*-----------------------------------------------------------------------*/
static
FRESULT chk_mounted ( /* FR_OK(0): successful, !=0: any error occurred */
const TCHAR **path, /* Pointer to pointer to the path name (drive number) */
FATFS **rfs, /* Pointer to pointer to the found file system object */
......@@ -4019,3 +4019,8 @@ int elm_get_vol(FATFS *fat)
return -1;
}
#endif
void leavefs(FATFS* fs, int res)
{
LEAVE_FF(fs, res);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册