-/* tab:4
+/*
* "Copyright (c) 2000-2004 The Regents of the University of California.
* All rights reserved.
*
void sync() {
metadata.flags = F_SYNC | F_LASTVALID;
metadata.lastRecordOffset = s[client].woffset;
+ /* rend is now no longer the end of the page */
+ if (s[client].rpage == s[client].wpage)
+ s[client].rend = s[client].woffset;
wmetadataStart();
}
}
command error_t LogRead.seek[uint8_t id](storage_cookie_t offset) {
- return newRequest(R_SEEK, id, (void *)(offset >> 16), offset);
+ return newRequest(R_SEEK, id, (void *)((uint16_t)(offset >> 16)), offset);
}
command storage_len_t LogRead.getSize[uint8_t id]() {
would end on the last byte of the last page, as this would mean that
we would not sync the last page, breaking the log volume
invariant */
- if (s[client].wpos % vlen >= vlen - len)
+ if ((s[client].wpos - PAGE_SIZE) % vlen >= vlen - len)
sync();
else
{