diff options
| author | bernard <[email protected]> | 2014-02-01 21:35:23 +0800 |
|---|---|---|
| committer | bernard <[email protected]> | 2014-02-01 21:35:23 +0800 |
| commit | 201d11bb2ff715e10e99508a54c187ee76ca6363 (patch) | |
| tree | b472f079454d1898995b8acf569085c8d664824e /components | |
| parent | 5a6ec7dcae9c92e06f6c6e129c2f9340cef93f09 (diff) | |
[DFS] Fix file size issue
This issue causes fstat & lseek not correct.
Diffstat (limited to 'components')
| -rw-r--r-- | components/dfs/filesystems/nfs/dfs_nfs.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/components/dfs/filesystems/nfs/dfs_nfs.c b/components/dfs/filesystems/nfs/dfs_nfs.c index 43d2845aa0..5f03314309 100644 --- a/components/dfs/filesystems/nfs/dfs_nfs.c +++ b/components/dfs/filesystems/nfs/dfs_nfs.c @@ -678,7 +678,9 @@ int nfs_write(struct dfs_fd *file, const void *buf, rt_size_t count) total += bytes; /* update current position */ file->pos = fd->offset; - /* todo: update file size */ + /* update file size */ + if (fd->size < fd->offset) fd->size = fd->offset; + file->size = fd->size; } xdr_free((xdrproc_t)xdr_WRITE3res, (char *)&res); } while (count > 0); @@ -796,6 +798,7 @@ int nfs_open(struct dfs_fd *file) /* set private file */ file->data = fp; + file->size = fp->size; } return 0; |
