diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/H5Fsuper.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/H5Fsuper.c b/src/H5Fsuper.c index fdedc9a..cf18fb0 100644 --- a/src/H5Fsuper.c +++ b/src/H5Fsuper.c @@ -1044,8 +1044,11 @@ done: HDONE_ERROR(H5E_FILE, H5E_CANTUNPIN, FAIL, "unable to unpin driver info") /* Evict the driver info block from the cache */ - if (sblock && H5AC_expunge_entry(f, H5AC_DRVRINFO, sblock->driver_addr, H5AC__NO_FLAGS_SET) < 0) - HDONE_ERROR(H5E_FILE, H5E_CANTEXPUNGE, FAIL, "unable to expunge driver info block") + if (sblock) { + if (H5AC_expunge_entry(f, H5AC_DRVRINFO, sblock->driver_addr, H5AC__NO_FLAGS_SET) < 0) + HDONE_ERROR(H5E_FILE, H5E_CANTEXPUNGE, FAIL, "unable to expunge driver info block") + f->shared->drvinfo = NULL; + } } /* end if */ /* Unpin & discard superblock */ @@ -1057,6 +1060,7 @@ done: /* Evict the superblock from the cache */ if (H5AC_expunge_entry(f, H5AC_SUPERBLOCK, (haddr_t)0, H5AC__NO_FLAGS_SET) < 0) HDONE_ERROR(H5E_FILE, H5E_CANTEXPUNGE, FAIL, "unable to expunge superblock") + f->shared->sblock = NULL; } /* end if */ } /* end if */ |