- if (sh_pwrite(obuck_fd, wbuf, woff, wstart) != woff)
- die("obuck_shakedown write failed: %m");
- wstart += woff;
- woff = 0;
+ if (obuck_shake_buflen - woff < l)
+ {
+ if (sh_pwrite(obuck_fd, wbuf, woff, wstart) != woff)
+ die("obuck_shakedown write failed: %m");
+ wstart += woff;
+ woff = 0;
+ }
+ whdr = (struct obuck_header *)(wbuf+woff);
+ memcpy(whdr, rhdr, l);
+ whdr->oid = w_bucket_start >> OBUCK_SHIFT;
+ woff += l;