Signed-off-by: Michael Fritscher <[email protected]>
---
hw/9pfs/9p.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index e0ef1a2a6b..f4ccb45f64 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -886,14 +886,34 @@ static void stat_to_v9stat_dotl(V9fsState *s, const
struct stat *stbuf,
v9lstat->st_gid = stbuf->st_gid;
v9lstat->st_rdev = stbuf->st_rdev;
v9lstat->st_size = stbuf->st_size;
+#ifdef _WIN32
+ /* Blksize is the optimal EA-block,
+ while blocks always refers to 512 byte blocks
+ */
+ v9lstat->st_blksize = 4096;
+ v9lstat->st_blocks = ((stbuf->st_size + 1) / 512) + 1;
+#else
v9lstat->st_blksize = stbuf->st_blksize;
v9lstat->st_blocks = stbuf->st_blocks;
+#endif
v9lstat->st_atime_sec = stbuf->st_atime;
+#ifdef _WIN32
+ v9lstat->st_atime_nsec = 0;
+#else
v9lstat->st_atime_nsec = stbuf->st_atim.tv_nsec;
+#endif
v9lstat->st_mtime_sec = stbuf->st_mtime;
+#ifdef _WIN32
+ v9lstat->st_mtime_nsec = 0;
+#else
v9lstat->st_mtime_nsec = stbuf->st_mtim.tv_nsec;
+#endif
v9lstat->st_ctime_sec = stbuf->st_ctime;
+#ifdef _WIN32
+ v9lstat->st_ctime_nsec = 0;
+#else
v9lstat->st_ctime_nsec = stbuf->st_ctim.tv_nsec;
+#endif
/* Currently we only support BASIC fields in stat */
v9lstat->st_result_mask = P9_STATS_BASIC;
--
2.13.2.windows.1