Reject all-zero blocks, mark empty space with a special entry type during init

This commit is contained in:
Vitaliy Filippov
2025-12-02 01:52:12 +03:00
parent abe093b9a3
commit e55ca26ff6
6 changed files with 90 additions and 26 deletions
+4 -2
View File
@@ -211,8 +211,10 @@ resume_4:
io_uring_prep_readv(sqe, bs->dsk.meta_fd, &data->iov, 1, bs->dsk.meta_offset + bufs[i].offset);
else
{
// Fill metadata with zeroes
memset(data->iov.iov_base, 0, data->iov.iov_len);
// Fill metadata with empty block pattern
memset(bufs[i].buf, 0, bufs[i].size);
for (uint64_t o = 0; o < bufs[i].size; o += bs->dsk.meta_block_size)
bs->heap->fill_block_empty_space(bufs[i].buf + o, 0);
io_uring_prep_writev(sqe, bs->dsk.meta_fd, &data->iov, 1, bs->dsk.meta_offset + bufs[i].offset);
}
bs->ringloop->submit();