summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/H5FDstdio.c3
-rw-r--r--src/H5Fsuper.c6
2 files changed, 8 insertions, 1 deletions
diff --git a/src/H5FDstdio.c b/src/H5FDstdio.c
index b241f4d..6f13555 100644
--- a/src/H5FDstdio.c
+++ b/src/H5FDstdio.c
@@ -1023,6 +1023,9 @@ H5FD_stdio_truncate(H5FD_t *_file, hid_t dxpl_id, hbool_t closing)
HFILE filehandle; /* Windows file handle */
LARGE_INTEGER li; /* 64-bit integer for SetFilePointer() call */
+ /* Reset seek offset to beginning of file, so that file isn't re-extended later */
+ rewind(file->fp);
+
/* Map the posix file handle to a Windows file handle */
filehandle = _get_osfhandle(fd);
diff --git a/src/H5Fsuper.c b/src/H5Fsuper.c
index 6162d21..154af1e 100644
--- a/src/H5Fsuper.c
+++ b/src/H5Fsuper.c
@@ -588,11 +588,15 @@ H5F_super_init(H5F_t *f, hid_t dxpl_id)
/* Check for non-default free space settings */
if(f->shared->fs_strategy != H5F_FILE_SPACE_STRATEGY_DEF ||
f->shared->fs_threshold != H5F_FREE_SPACE_THRESHOLD_DEF) {
- H5O_fsinfo_t fsinfo; /* Free space manager info message */
+ H5FD_mem_t type; /* Memory type for iteration */
+ H5O_fsinfo_t fsinfo; /* Free space manager info message */
/* Write free-space manager info message to superblock extension object header if needed */
fsinfo.strategy = f->shared->fs_strategy;
fsinfo.threshold = f->shared->fs_threshold;
+ for(type = H5FD_MEM_SUPER; type < H5FD_MEM_NTYPES; H5_INC_ENUM(H5FD_mem_t, type))
+ fsinfo.fs_addr[type-1] = HADDR_UNDEF;
+
if(H5O_msg_create(&ext_loc, H5O_FSINFO_ID, H5O_MSG_FLAG_DONTSHARE, H5O_UPDATE_TIME, &fsinfo, dxpl_id) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, FAIL, "unable to update free-space info header message")
} /* end if */