diff --git src/fs/rock/RockSwapDir.cc src/fs/rock/RockSwapDir.cc index 4aefc21..9673712 100644 --- src/fs/rock/RockSwapDir.cc +++ src/fs/rock/RockSwapDir.cc @@ -427,7 +427,8 @@ Rock::SwapDir::canStore(const StoreEntry &e, int64_t diskSpaceNeeded, int &load) // Do not start I/O transaction if there are less than 10% free pages left. // TODO: reserve page instead - if (Ipc::Mem::PageLevel(Ipc::Mem::PageId::ioPage) >= 0.9 * Ipc::Mem::PageLimit(Ipc::Mem::PageId::ioPage)) { + if (needsDiskStrand() && + Ipc::Mem::PageLevel(Ipc::Mem::PageId::ioPage) >= 0.9 * Ipc::Mem::PageLimit(Ipc::Mem::PageId::ioPage)) { debugs(47, 5, HERE << "too few shared pages for IPC I/O left"); return false; } @@ -520,7 +521,8 @@ Rock::SwapDir::openStoreIO(StoreEntry &e, StoreIOState::STFNCB *cbFile, StoreIOS // Do not start I/O transaction if there are less than 10% free pages left. // TODO: reserve page instead - if (Ipc::Mem::PageLevel(Ipc::Mem::PageId::ioPage) >= 0.9 * Ipc::Mem::PageLimit(Ipc::Mem::PageId::ioPage)) { + if (needsDiskStrand() && + Ipc::Mem::PageLevel(Ipc::Mem::PageId::ioPage) >= 0.9 * Ipc::Mem::PageLimit(Ipc::Mem::PageId::ioPage)) { debugs(47, 5, HERE << "too few shared pages for IPC I/O left"); return NULL; }