From 1289dff20387909fb23c89ea1cdf70b1481423b8 Mon Sep 17 00:00:00 2001 From: Grissiom Date: Sat, 21 Dec 2013 12:09:28 +0800 Subject: [PATCH] DFS: let mount fail on device open error --- components/dfs/src/dfs_fs.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/components/dfs/src/dfs_fs.c b/components/dfs/src/dfs_fs.c index 7e1dbd3584..a3a8210225 100644 --- a/components/dfs/src/dfs_fs.c +++ b/components/dfs/src/dfs_fs.c @@ -285,7 +285,16 @@ int dfs_mount(const char *device_name, /* open device, but do not check the status of device */ if (dev_id != RT_NULL) - rt_device_open(fs->dev_id, RT_DEVICE_OFLAG_RDWR); + { + if (rt_device_open(fs->dev_id, + RT_DEVICE_OFLAG_RDWR) != RT_EOK) + { + /* The underlaying device has error, clear the entry. */ + dfs_lock(); + rt_memset(fs, 0, sizeof(struct dfs_filesystem)); + goto err1; + } + } /* call mount of this filesystem */ if ((*ops)->mount(fs, rwflag, data) < 0)