diff options
Diffstat (limited to 'src/H5Fseq.c')
-rw-r--r-- | src/H5Fseq.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/H5Fseq.c b/src/H5Fseq.c index bace23d..49b9203 100644 --- a/src/H5Fseq.c +++ b/src/H5Fseq.c @@ -164,6 +164,7 @@ H5F_seq_readv(H5F_t *f, hid_t dxpl_id, const struct H5O_layout_t *layout, int i,j; /*counters */ #ifdef H5_HAVE_PARALLEL H5FD_mpio_xfer_t xfer_mode=H5FD_MPIO_INDEPENDENT; + H5P_genplist_t *plist=NULL; /* Property list */ #endif FUNC_ENTER(H5F_seq_readv, FAIL); @@ -182,14 +183,18 @@ H5F_seq_readv(H5F_t *f, hid_t dxpl_id, const struct H5O_layout_t *layout, H5FD_mpio_dxpl_t *dx; hid_t driver_id; /* VFL driver ID */ + /* Get the plist structure */ + if(NULL == (plist = H5I_object(dxpl_id))) + HRETURN_ERROR(H5E_ATOM, H5E_BADATOM, NULL, "can't find object for ID"); + /* Get the driver ID */ - if(H5P_get(dxpl_id, H5D_XFER_VFL_ID_NAME, &driver_id)<0) + if(H5P_get(plist, H5D_XFER_VFL_ID_NAME, &driver_id)<0) HRETURN_ERROR (H5E_PLIST, H5E_CANTGET, FAIL, "Can't retrieve VFL driver ID"); /* Check if we are using the MPIO driver */ if(H5FD_MPIO==driver_id) { /* Get the driver information */ - if(H5P_get(dxpl_id, H5D_XFER_VFL_INFO_NAME, &dx)<0) + if(H5P_get(plist, H5D_XFER_VFL_INFO_NAME, &dx)<0) HRETURN_ERROR (H5E_PLIST, H5E_CANTGET, FAIL, "Can't retrieve VFL driver info"); /* Check if we are not using independent I/O */ @@ -199,10 +204,8 @@ H5F_seq_readv(H5F_t *f, hid_t dxpl_id, const struct H5O_layout_t *layout, } /* Collective MPIO access is unsupported for non-contiguous datasets */ - if (H5D_CONTIGUOUS!=layout->type && H5FD_MPIO_COLLECTIVE==xfer_mode) { - HRETURN_ERROR (H5E_DATASET, H5E_READERROR, FAIL, - "collective access on non-contiguous datasets not supported yet"); - } + if (H5D_CONTIGUOUS!=layout->type && H5FD_MPIO_COLLECTIVE==xfer_mode) + HRETURN_ERROR (H5E_DATASET, H5E_READERROR, FAIL, "collective access on non-contiguous datasets not supported yet"); #endif switch (layout->type) { @@ -548,6 +551,7 @@ H5F_seq_writev(H5F_t *f, hid_t dxpl_id, const struct H5O_layout_t *layout, int i,j; /*counters */ #ifdef H5_HAVE_PARALLEL H5FD_mpio_xfer_t xfer_mode=H5FD_MPIO_INDEPENDENT; + H5P_genplist_t *plist=NULL; /* Property list */ #endif FUNC_ENTER(H5F_seq_writev, FAIL); @@ -566,14 +570,18 @@ H5F_seq_writev(H5F_t *f, hid_t dxpl_id, const struct H5O_layout_t *layout, H5FD_mpio_dxpl_t *dx; hid_t driver_id; /* VFL driver ID */ + /* Get the plist structure */ + if(NULL == (plist = H5I_object(dxpl_id))) + HRETURN_ERROR(H5E_ATOM, H5E_BADATOM, NULL, "can't find object for ID"); + /* Get the driver ID */ - if(H5P_get(dxpl_id, H5D_XFER_VFL_ID_NAME, &driver_id)<0) + if(H5P_get(plist, H5D_XFER_VFL_ID_NAME, &driver_id)<0) HRETURN_ERROR (H5E_PLIST, H5E_CANTGET, FAIL, "Can't retrieve VFL driver ID"); /* Check if we are using the MPIO driver */ if(H5FD_MPIO==driver_id) { /* Get the driver information */ - if(H5P_get(dxpl_id, H5D_XFER_VFL_INFO_NAME, &dx)<0) + if(H5P_get(plist, H5D_XFER_VFL_INFO_NAME, &dx)<0) HRETURN_ERROR (H5E_PLIST, H5E_CANTGET, FAIL, "Can't retrieve VFL driver info"); /* Check if we are not using independent I/O */ |