diff options
author | phk <phk@FreeBSD.org> | 2003-04-28 06:19:41 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-04-28 06:19:41 +0000 |
commit | 1adaf3d22c4a4b1e533a92a11802d2e7bd855616 (patch) | |
tree | dff3a0161dcf6df73e6241eaf79df9ca5783a2a5 /sys/geom/bde | |
parent | ce2e2c5d956b1edd449a83071b636c5c578e7b5e (diff) | |
download | FreeBSD-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.c | 7 |
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) |