summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbernard <[email protected]>2014-02-01 21:35:23 +0800
committerbernard <[email protected]>2014-02-01 21:35:23 +0800
commit201d11bb2ff715e10e99508a54c187ee76ca6363 (patch)
treeb472f079454d1898995b8acf569085c8d664824e
parent5a6ec7dcae9c92e06f6c6e129c2f9340cef93f09 (diff)
[DFS] Fix file size issue
This issue causes fstat & lseek not correct.
-rw-r--r--components/dfs/filesystems/nfs/dfs_nfs.c5
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;