summaryrefslogtreecommitdiffstats
path: root/src/H5Fsuper.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Fsuper.c')
-rw-r--r--src/H5Fsuper.c8
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 */