From 18197d347136ce5c4fabedf3b8643449e7ba7c4a Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Mon, 22 Dec 2008 14:01:29 -0500 Subject: [svn-r16213] Added HDlseek to the H5FD_core_truncate function in H5FDcore.c to rewind the file pointer to the beginning of the file. Otherwise, the file might be re-extended later on Open VMS. Also updated the return value for the HDlseek to be more appropriate. Tested on Open VMS. --- src/H5FDcore.c | 7 +++++++ src/H5FDsec2.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/H5FDcore.c b/src/H5FDcore.c index 68a0655..9ecb6f5 100644 --- a/src/H5FDcore.c +++ b/src/H5FDcore.c @@ -985,6 +985,13 @@ if(file->eof < new_eof) /* Update backing store, if using it */ if(file->fd >= 0 && file->backing_store) { +#ifdef H5_VMS + /* Reset seek offset to the beginning of the file, so that the file isn't + * re-extended later. This may happen on Open VMS. */ + if(-1 == HDlseek(file->fd, 0, SEEK_SET)) + HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position") +#endif + if(-1 == HDftruncate(file->fd, (off_t)new_eof)) HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to extend file properly") } /* end if */ diff --git a/src/H5FDsec2.c b/src/H5FDsec2.c index f82a97e..ac669d6 100644 --- a/src/H5FDsec2.c +++ b/src/H5FDsec2.c @@ -888,7 +888,7 @@ HDfprintf(stderr, "%s: file->eof = %a, file->eoa = %a\n", FUNC, file->eof, file- #ifdef H5_VMS /* Reset seek offset to the beginning of the file, so that the file isn't * re-extended later. This may happen on Open VMS. */ - if(HDlseek(file->fd, (file_offset_t)0, SEEK_SET) < 0) + if(-1 == HDlseek(file->fd, (file_offset_t)0, SEEK_SET)) HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position") #endif -- cgit v0.12