diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/links.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/test/links.c b/test/links.c index 092cdac..d807352 100644 --- a/test/links.c +++ b/test/links.c @@ -4121,7 +4121,7 @@ external_set_elink_cb_cb(const char *parent_file, const char *parent_group, static int external_set_elink_cb(hid_t fapl, hbool_t new_format) { - hid_t file1, file2, group, gapl, fam_fapl, ret_fapl; + hid_t file1, file2, group, gapl, fam_fapl, ret_fapl, base_driver; set_elink_cb_t op_data, *op_data_p; H5L_elink_traverse_t cb; @@ -4138,7 +4138,12 @@ external_set_elink_cb(hid_t fapl, hbool_t new_format) op_data.parent_file = filename1; op_data.target_file = filename2; /* Core file driver has issues when used as the member file driver for a family file */ - op_data.base_fapl = H5Pget_driver(fapl) == H5FD_CORE ? H5P_DEFAULT : fapl; + /* Family file driver cannot be used with family or multi drivers for member files */ + /* Also disable parellel member drivers, because IS_H5FD_MPI whould report FALSE, causing problems */ + base_driver = H5Pget_driver(fapl); + op_data.base_fapl = (base_driver == H5FD_FAMILY || base_driver == H5FD_MULTI + || base_driver == H5FD_MPIO || base_driver == H5FD_MPIPOSIX + || base_driver == H5FD_CORE) ? H5P_DEFAULT : fapl; op_data.fam_size = ELINK_CB_FAM_SIZE; op_data.code = 0; |