diff options
-rw-r--r-- | src/H5FDstdio.c | 3 | ||||
-rw-r--r-- | src/H5Fsuper.c | 6 |
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 */ |