summaryrefslogtreecommitdiffstats
path: root/src/H5Dio.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2003-09-16 17:25:53 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2003-09-16 17:25:53 (GMT)
commit58b49c8302b3adc3890f7f0c7b4da291fd34562a (patch)
treeb65d788e6f9c91e17fa43deef3f9f9c5fed7966b /src/H5Dio.c
parent3abb7a1f68153a8a2eab5920fe7715467ac26081 (diff)
downloadhdf5-58b49c8302b3adc3890f7f0c7b4da291fd34562a.zip
hdf5-58b49c8302b3adc3890f7f0c7b4da291fd34562a.tar.gz
hdf5-58b49c8302b3adc3890f7f0c7b4da291fd34562a.tar.bz2
[svn-r7479] Purpose:
Bug fix Description: H5Dwrite was only checking the "top level" of the datatype to stop parallel I/O on variable-length datatypes. Solution: Make checks "deeper". Platforms tested: FreeBSD 4.9 (sleipnir) h5committest
Diffstat (limited to 'src/H5Dio.c')
-rw-r--r--src/H5Dio.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/H5Dio.c b/src/H5Dio.c
index d8fefb2..944825f 100644
--- a/src/H5Dio.c
+++ b/src/H5Dio.c
@@ -747,11 +747,14 @@ H5D_write(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space,
/* This is because they use the global heap in the file and we don't */
/* support parallel access of that yet */
if ( (IS_H5FD_MPIO(dataset->ent.file) || IS_H5FD_MPIPOSIX(dataset->ent.file) || IS_H5FD_FPHDF5(dataset->ent.file)) &&
- H5T_get_class(mem_type)==H5T_VLEN)
+ H5T_detect_class(mem_type, H5T_VLEN)>0)
HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, FAIL, "Parallel IO does not support writing VL datatypes yet");
/* If MPIO, MPIPOSIX, or FPHDF5 is used, no dataset region reference datatype support yet. */
/* This is because they use the global heap in the file and we don't */
/* support parallel access of that yet */
+ /* We should really use H5T_detect_class() here, but it will be difficult
+ * to detect the type of the reference if it is nested... -QAK
+ */
if ((IS_H5FD_MPIO(dataset->ent.file) || IS_H5FD_MPIPOSIX(dataset->ent.file) || IS_H5FD_FPHDF5(dataset->ent.file)) &&
H5T_get_class(mem_type)==H5T_REFERENCE &&
H5T_get_ref_type(mem_type)==H5R_DATASET_REGION)