diff --git a/src/blockstore/blockstore_flush.cpp b/src/blockstore/blockstore_flush.cpp index f157dae9..743e6d8a 100644 --- a/src/blockstore/blockstore_flush.cpp +++ b/src/blockstore/blockstore_flush.cpp @@ -563,7 +563,7 @@ void journal_flusher_co::fill_partial_checksum_blocks() } auto & vec = read_vec[read_vec.size()-1]; read_vec.insert(read_vec.begin()+vec_pos, (copy_buffer_t){ - .copy_flags = COPY_BUF_JOURNAL|COPY_BUF_COALESCED, + .copy_flags = COPY_BUF_DATA|COPY_BUF_COALESCED, .offset = hole_start, .len = hole_end - hole_start, .disk_offset = hole_start, diff --git a/src/blockstore/v1/init.cpp b/src/blockstore/v1/init.cpp index 771bd589..b0abc1e5 100644 --- a/src/blockstore/v1/init.cpp +++ b/src/blockstore/v1/init.cpp @@ -1006,7 +1006,7 @@ int blockstore_init_journal::handle_journal_part(void *buf, uint64_t done_pos, u memcpy((uint8_t*)dyn+sizeof(int), dyn_from, dyn_size); } bs->dirty_db.emplace(ov, (dirty_entry){ - .state = (BS_ST_SMALL_WRITE | BS_ST_SYNCED | (je->type == JE_SMALL_WRITE_INSTANT ? BS_ST_INSTANT : 0)), + .state = (uint32_t)(BS_ST_SMALL_WRITE | BS_ST_SYNCED | (je->type == JE_SMALL_WRITE_INSTANT ? BS_ST_INSTANT : 0)), .flags = 0, .location = location, .offset = je->small_write.offset, @@ -1090,7 +1090,7 @@ int blockstore_init_journal::handle_journal_part(void *buf, uint64_t done_pos, u memcpy((uint8_t*)dyn+sizeof(int), dyn_from, dyn_size); } auto dirty_it = bs->dirty_db.emplace(ov, (dirty_entry){ - .state = (BS_ST_BIG_WRITE | BS_ST_SYNCED | (je->type == JE_BIG_WRITE_INSTANT ? BS_ST_INSTANT : 0)), + .state = (uint32_t)(BS_ST_BIG_WRITE | BS_ST_SYNCED | (je->type == JE_BIG_WRITE_INSTANT ? BS_ST_INSTANT : 0)), .flags = 0, .location = je->big_write.location, .offset = je->big_write.offset, diff --git a/src/client/msgr_receive.cpp b/src/client/msgr_receive.cpp index f3e66fb9..afcf1cfd 100644 --- a/src/client/msgr_receive.cpp +++ b/src/client/msgr_receive.cpp @@ -527,7 +527,7 @@ out_wakeup: { if (result > 0 && cl->read_csum_state && !(cl->recv_flags[i] & RDR_NO_CSUM)) XXH3_64bits_update(cl->read_csum_state, cl->recv_list[i].iov_base, result); - cl->recv_list[i].iov_base += result; + cl->recv_list[i].iov_base = (char*)cl->recv_list[i].iov_base + result; cl->recv_list[i].iov_len -= result; } else