The "read crosses page" case in mget() needs to adjust the buffer
pointer in addition to the file offset and the transfer count.
This bug was exposed by enabling spread()'s cache, which causes a
"page crossing" every 8k--otherwise it's not clear to me that they
actually happen, which explains why nobody noticed the mistake.
|