Commits

Albert Cheng committed 91da899a1fb
[svn-r2990] Purpose: Bug fix (feature, kind of) Description: The library used to hang if a collective dataset read/write request does not have the same number of eventual MPIO request. Part of the reason is that H5FD_read/H5FD_write immediately returns succeess if it sees the request size is 0. This caused problem since other processes with I/O to do would be hanging by waiting for the early returned process(es). Solution: H5FD.c: disable the early return code in parallel mode. Make it go on even with "nothing" to transfer. H5D.c: the optimized MPIO xfer routines can handle collect calls correctly when the condition is right (e.g., no conversion). When the COLLECTIVE request cannot be handled correctly without the risk of hanging, the COLLECTIVE is changed to INDEPENDENT calls for the eventual MPIO calls. Platforms tested: IRIX64 parallel (-64, n32), IRIX64 -64 sequential, Linux sequential.