- && (b->type == BLUESKY_BLOCK_REF
- || b->data->len < BLUESKY_BLOCK_SIZE)) {
- bluesky_block_touch(inode, inode->blocks->len - 1);
- gsize old_size = b->data->len;
- bluesky_string_resize(b->data, BLUESKY_BLOCK_SIZE);
- memset(&b->data->data[old_size], 0,
+ && lastblock_old < BLUESKY_BLOCK_SIZE) {
+ bluesky_block_touch(inode, inode->blocks->len - 1, TRUE);
+ gsize old_size = b->dirty->len;
+ if (lastblock_old != old_size) {
+ fprintf(stderr,
+ "Warning: last block size = %zd, expected %d\n",
+ old_size, lastblock_old);
+ }
+ bluesky_string_resize(b->dirty, BLUESKY_BLOCK_SIZE);
+ memset(&b->dirty->data[old_size], 0,