Why is this code like this:
store_client.c:300
} else if (!sc->flags.disk_io_pending) {
sc->flags.disk_io_pending = 1;
storeSwapInStart(sc);
if (NULL == sc->swapin_sio) {
storeClientCallback(sc, -1);
return;
}
/*
* If the open succeeds we either copy from memory, or
* schedule a disk read in the next block.
*/
Why is the code setting disk_io_pending ? THe problem in the current
souce tree is that disk_io_pending is set to 1, then a read is scheduled
at the end of tostClientCopy3() (where this code is also from) and
triggers an assertion :
/* What the client wants is not in memory. Schedule a disk read */
assert(STORE_DISK_CLIENT == sc->type);
assert(!sc->flags.disk_io_pending);
debug(20, 3) ("storeClientCopy3: reading from STORE\n");
storeClientFileRead(sc);
I've commented the code out and I can't see any ill effects. Am I
missing something?
Adrian
-- Adrian Chadd Build a man a fire, and he's warm for the <adrian@creative.net.au> rest of the evening. Set a man on fire and he's warm for the rest of his life.Received on Thu May 25 2000 - 05:20:04 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:12:26 MST