diff --git a/iocore/cache/Cache.cc b/iocore/cache/Cache.cc index 660714715f9..4232a25cae5 100644 --- a/iocore/cache/Cache.cc +++ b/iocore/cache/Cache.cc @@ -2179,6 +2179,11 @@ CacheVC::handleReadDone(int event, Event *e) } else if (is_io_in_progress()) { return EVENT_CONT; } + if (DISK_BAD(vol->disk)) { + io.aio_result = -1; + Warning("Canceling cache read: disk %s is bad.", vol->hash_text.get()); + goto Ldone; + } { MUTEX_TRY_LOCK(lock, vol->mutex, mutex->thread_holding); if (!lock.is_locked()) {