summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryangfasheng <[email protected]>2019-01-09 17:40:32 +0800
committeryangfasheng <[email protected]>2019-01-09 17:40:32 +0800
commitc16d3de633ef1ef1a92b1a3d377de44a46f93865 (patch)
tree62f6677fad74c0e9c72e8fceae39fa8256ca6188
parent8d7dae447cd7a0ee0a59b8d15ed30d87690a0db4 (diff)
update dfs.c dfs_file.c dfs_file.h
Signed-off-by: yangfasheng <[email protected]>
-rw-r--r--components/dfs/include/dfs_file.h1
-rw-r--r--components/dfs/src/dfs.c2
-rw-r--r--components/dfs/src/dfs_file.c3
3 files changed, 4 insertions, 2 deletions
diff --git a/components/dfs/include/dfs_file.h b/components/dfs/include/dfs_file.h
index 7ef681a247..aaff3f6e9c 100644
--- a/components/dfs/include/dfs_file.h
+++ b/components/dfs/include/dfs_file.h
@@ -44,6 +44,7 @@ struct dfs_fd
char *path; /* Name (below mount point) */
int ref_count; /* Descriptor reference count */
+ struct dfs_filesystem *fs;
const struct dfs_file_ops *fops;
uint32_t flags; /* Descriptor flags */
diff --git a/components/dfs/src/dfs.c b/components/dfs/src/dfs.c
index 1850ac426c..066c800568 100644
--- a/components/dfs/src/dfs.c
+++ b/components/dfs/src/dfs.c
@@ -320,7 +320,7 @@ int fd_is_open(const char *pathname)
fd = fdt->fds[index];
if (fd == NULL || fd->fops == NULL || fd->path == NULL) continue;
- if (fd->fops == fs->ops->fops && strcmp(fd->path, mountpath) == 0)
+ if (fd->fs == fs && strcmp(fd->path, mountpath) == 0)
{
/* found file in file descriptor table */
rt_free(fullpath);
diff --git a/components/dfs/src/dfs_file.c b/components/dfs/src/dfs_file.c
index e7071522ce..4505667738 100644
--- a/components/dfs/src/dfs_file.c
+++ b/components/dfs/src/dfs_file.c
@@ -66,7 +66,8 @@ int dfs_file_open(struct dfs_fd *fd, const char *path, int flags)
}
LOG_D("open in filesystem:%s", fs->ops->name);
- fd->fops = fs->ops->fops; /* set file ops */
+ fd->fs = fs; /* set file system */
+ fd->fops = fs->ops->fops; /* set file ops */
/* initialize the fd item */
fd->type = FT_REGULAR;