summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2013-09-28 00:42:04 -0700
committerBernard Xiong <[email protected]>2013-09-28 00:42:04 -0700
commit0d378bbeac05df200da722e4851caa9ffffbfdec (patch)
tree85e12ba214bd0733fd428fb5d25565f6de7c51b1
parentbfc0d8c91d47039b3a85c744523c75345ea3e518 (diff)
parentf71f0595d68b42709f93c524a9d2ad4a85c75489 (diff)
Merge pull request #165 from prife/jffs2-fix
DFS/jffs2: fix file mode init bug in jffs2_open/opendir
-rw-r--r--components/dfs/filesystems/jffs2/dfs_jffs2.c1
-rw-r--r--components/dfs/filesystems/jffs2/src/fs-ecos.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/components/dfs/filesystems/jffs2/dfs_jffs2.c b/components/dfs/filesystems/jffs2/dfs_jffs2.c
index 3b96295c76..6516797544 100644
--- a/components/dfs/filesystems/jffs2/dfs_jffs2.c
+++ b/components/dfs/filesystems/jffs2/dfs_jffs2.c
@@ -178,6 +178,7 @@ static int dfs_jffs2_mount(struct dfs_filesystem* fs,
result = jffs2_mount(NULL, mte);
if (result != 0)
{
+ device_partition[index].dev = NULL;
return jffs2_result_to_dfs(result);
}
/* save this pointer */
diff --git a/components/dfs/filesystems/jffs2/src/fs-ecos.c b/components/dfs/filesystems/jffs2/src/fs-ecos.c
index 5f3b5d607c..814d2e3010 100644
--- a/components/dfs/filesystems/jffs2/src/fs-ecos.c
+++ b/components/dfs/filesystems/jffs2/src/fs-ecos.c
@@ -747,7 +747,7 @@ int jffs2_open(cyg_mtab_entry * mte, cyg_dir dir, const char *name,
}
// Initialise the file object
- file->f_flag |= mode & CYG_FILE_MODE_MASK;
+ file->f_flag = mode & CYG_FILE_MODE_MASK;
file->f_type = CYG_FILE_TYPE_FILE;
file->f_ops = &jffs2_fileops;
file->f_offset = (mode & O_APPEND) ? node->i_size : 0;
@@ -1065,6 +1065,7 @@ static int jffs2_opendir(cyg_mtab_entry * mte, cyg_dir dir, const char *name,
// Initialize the file object, setting the f_ops field to a
// special set of file ops.
+ file->f_flag = 0;
file->f_type = CYG_FILE_TYPE_FILE;
file->f_ops = &jffs2_dirops;
file->f_offset = 0;