mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-02-17 16:10:24 +08:00
[svn-r12725] Purpose:
Bug Fix (Bug 544) Description: SGI Altix's MPI_File_get_size overflowed at 2GB and more. Put in a temporary patch to use stat() instead to make Cobalt passing on this test (bigdset). A better fix (like detect if MPI_File_get_size does not work before using this is preferred.) Tested: Cobalt and Heping.
This commit is contained in:
parent
831be1cdff
commit
ad80fe7ea9
@ -310,10 +310,15 @@ create_faccess_plist(MPI_Comm comm, MPI_Info info, int l_facc_type,
|
||||
|
||||
/*
|
||||
* Check the size of a file using MPI routines
|
||||
* Temporary hack: SGI Altix MPI_File_get_size() does not work correctly
|
||||
* for size >= 2GB. Use stat for now.
|
||||
* If stat() does not work for other systems, need to make it conditional
|
||||
* compile for Altix only.
|
||||
*/
|
||||
MPI_Offset
|
||||
h5_mpi_get_file_size(const char *filename, MPI_Comm comm, MPI_Info info)
|
||||
{
|
||||
#if 0
|
||||
MPI_File fh; /* MPI file handle */
|
||||
MPI_Offset size=0; /* File size to return */
|
||||
|
||||
@ -325,6 +330,23 @@ h5_mpi_get_file_size(const char *filename, MPI_Comm comm, MPI_Info info)
|
||||
|
||||
if (MPI_SUCCESS != MPI_File_close(&fh))
|
||||
size=0;
|
||||
#else
|
||||
MPI_Offset size=0; /* File size to return */
|
||||
#ifdef H5_HAVE_STAT64
|
||||
/* use stat64 if available */
|
||||
struct stat64 mystat;
|
||||
#else
|
||||
struct stat mystat;
|
||||
#endif
|
||||
|
||||
#ifdef H5_HAVE_STAT64
|
||||
stat(filename, &mystat);
|
||||
#else
|
||||
stat(filename, &mystat);
|
||||
#endif
|
||||
|
||||
size = mystat.st_size;
|
||||
#endif
|
||||
|
||||
done:
|
||||
return(size);
|
||||
|
Loading…
Reference in New Issue
Block a user