summaryrefslogtreecommitdiffstats
path: root/sys/geom/bde
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-04-28 06:19:41 +0000
committerphk <phk@FreeBSD.org>2003-04-28 06:19:41 +0000
commit1adaf3d22c4a4b1e533a92a11802d2e7bd855616 (patch)
treedff3a0161dcf6df73e6241eaf79df9ca5783a2a5 /sys/geom/bde
parentce2e2c5d956b1edd449a83071b636c5c578e7b5e (diff)
downloadFreeBSD-src-1adaf3d22c4a4b1e533a92a11802d2e7bd855616.zip
FreeBSD-src-1adaf3d22c4a4b1e533a92a11802d2e7bd855616.tar.gz
Only attempt total cache-purge once in case of failure.
Diffstat (limited to 'sys/geom/bde')
-rw-r--r--sys/geom/bde/g_bde_work.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/geom/bde/g_bde_work.c b/sys/geom/bde/g_bde_work.c
index 7893b57..da5b24b 100644
--- a/sys/geom/bde/g_bde_work.c
+++ b/sys/geom/bde/g_bde_work.c
@@ -254,9 +254,6 @@ g_bde_get_sector(struct g_bde_work *wp, off_t offset)
sp->used = time_uptime;
}
wp->ksp = sp;
- if (sp == NULL) {
- g_bde_purge_sector(sc, -1);
- }
return(sp);
}
@@ -333,8 +330,10 @@ g_bde_read_keysector(struct g_bde_softc *sc, struct g_bde_work *wp)
g_trace(G_T_TOPOLOGY, "g_bde_read_keysector(%p)", wp);
sp = g_bde_get_sector(wp, wp->kso);
- if (sp == NULL)
+ if (sp == NULL) {
+ g_bde_purge_sector(sc, -1);
sp = g_bde_get_sector(wp, wp->kso);
+ }
if (sp == NULL)
return (sp);
if (sp->owner != wp)
OpenPOWER on IntegriCloud