inode->blocks->len - 1);
if (b->type != BLUESKY_BLOCK_ZERO
- && b->data->len < BLUESKY_BLOCK_SIZE) {
+ && (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);
BlueSkyRCStr *data = block->data;
GChecksum *csum = g_checksum_new(G_CHECKSUM_SHA256);
- g_checksum_update(csum, data->data, data->len);
+ g_checksum_update(csum, (const guchar *)data->data, data->len);
gchar *name = g_strdup(g_checksum_get_string(csum));
/* Store the file data asynchronously, and don't bother waiting for a