From a3e1ecc14bd377d5b03415350ac0530fbfe4fa71 Mon Sep 17 00:00:00 2001 From: Edgar Gabriel Date: Sat, 5 Oct 2019 09:50:02 -0500 Subject: [PATCH] comomn_ompio_file_read/write: fix 2GB limiting issue individual read/write operations exceeding 2GB fail in ompio due to improper conversions from size_t to int in two different locations. This commit fixes an issue reported by Richard Warren from the HDF5 group. Fixes Issue #7045 Cherry-picked from commit a130f569df6badebe639d17c0a1a0cb79a596094 Signed-off-by: Edgar Gabriel --- ompi/mca/common/ompio/common_ompio.h | 2 +- ompi/mca/common/ompio/common_ompio_file_read.c | 4 ++-- ompi/mca/common/ompio/common_ompio_file_write.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ompi/mca/common/ompio/common_ompio.h b/ompi/mca/common/ompio/common_ompio.h index e1d7fe2128..a1c195de08 100644 --- a/ompi/mca/common/ompio/common_ompio.h +++ b/ompi/mca/common/ompio/common_ompio.h @@ -261,7 +261,7 @@ OMPI_DECLSPEC int mca_common_ompio_file_iwrite_at_all (ompio_file_t *fp, OMPI_MP int count, struct ompi_datatype_t *datatype, ompi_request_t **request); OMPI_DECLSPEC int mca_common_ompio_build_io_array ( ompio_file_t *fh, int index, int cycles, - size_t bytes_per_cycle, int max_data, uint32_t iov_count, + size_t bytes_per_cycle, size_t max_data, uint32_t iov_count, struct iovec *decoded_iov, int *ii, int *jj, size_t *tbw, size_t *spc ); diff --git a/ompi/mca/common/ompio/common_ompio_file_read.c b/ompi/mca/common/ompio/common_ompio_file_read.c index 452683605a..eafd1c4431 100644 --- a/ompi/mca/common/ompio/common_ompio_file_read.c +++ b/ompi/mca/common/ompio/common_ompio_file_read.c @@ -429,8 +429,8 @@ int mca_common_ompio_file_iread_at_all (ompio_file_t *fp, int mca_common_ompio_set_explicit_offset (ompio_file_t *fh, OMPI_MPI_OFFSET_TYPE offset) { - int i = 0; - int k = 0; + size_t i = 0; + size_t k = 0; if ( fh->f_view_size > 0 ) { /* starting offset of the current copy of the filew view */ diff --git a/ompi/mca/common/ompio/common_ompio_file_write.c b/ompi/mca/common/ompio/common_ompio_file_write.c index adb9c844d7..62f728e66a 100644 --- a/ompi/mca/common/ompio/common_ompio_file_write.c +++ b/ompi/mca/common/ompio/common_ompio_file_write.c @@ -409,7 +409,7 @@ int mca_common_ompio_file_iwrite_at_all (ompio_file_t *fp, /**************************************************************/ int mca_common_ompio_build_io_array ( ompio_file_t *fh, int index, int cycles, - size_t bytes_per_cycle, int max_data, uint32_t iov_count, + size_t bytes_per_cycle, size_t max_data, uint32_t iov_count, struct iovec *decoded_iov, int *ii, int *jj, size_t *tbw, size_t *spc) {