Do not alter dsk.meta_offset/len to skip superblock

rm-left-on-dead
Vitaliy Filippov 2022-07-01 11:43:28 +03:00
parent 4d777c6729
commit ea632367e9
3 changed files with 8 additions and 9 deletions

View File

@ -541,7 +541,7 @@ resume_1:
data->iov = (struct iovec){ meta_old.buf, bs->dsk.meta_block_size }; data->iov = (struct iovec){ meta_old.buf, bs->dsk.meta_block_size };
data->callback = simple_callback_w; data->callback = simple_callback_w;
my_uring_prep_writev( my_uring_prep_writev(
sqe, bs->dsk.meta_fd, &data->iov, 1, bs->dsk.meta_offset + meta_old.sector sqe, bs->dsk.meta_fd, &data->iov, 1, bs->dsk.meta_offset + bs->dsk.meta_block_size + meta_old.sector
); );
wait_count++; wait_count++;
} }
@ -585,7 +585,7 @@ resume_1:
data->iov = (struct iovec){ meta_new.buf, bs->dsk.meta_block_size }; data->iov = (struct iovec){ meta_new.buf, bs->dsk.meta_block_size };
data->callback = simple_callback_w; data->callback = simple_callback_w;
my_uring_prep_writev( my_uring_prep_writev(
sqe, bs->dsk.meta_fd, &data->iov, 1, bs->dsk.meta_offset + meta_new.sector sqe, bs->dsk.meta_fd, &data->iov, 1, bs->dsk.meta_offset + bs->dsk.meta_block_size + meta_new.sector
); );
wait_count++; wait_count++;
resume_7: resume_7:
@ -849,7 +849,7 @@ bool journal_flusher_co::modify_meta_read(uint64_t meta_loc, flusher_meta_write_
data->callback = simple_callback_r; data->callback = simple_callback_r;
wr.submitted = true; wr.submitted = true;
my_uring_prep_readv( my_uring_prep_readv(
sqe, bs->dsk.meta_fd, &data->iov, 1, bs->dsk.meta_offset + wr.sector sqe, bs->dsk.meta_fd, &data->iov, 1, bs->dsk.meta_offset + bs->dsk.meta_block_size + wr.sector
); );
wait_count++; wait_count++;
} }

View File

@ -130,12 +130,11 @@ resume_1:
} }
} }
// Skip superblock // Skip superblock
bs->dsk.meta_offset += bs->dsk.meta_block_size; md_offset = bs->dsk.meta_block_size;
bs->dsk.meta_len -= bs->dsk.meta_block_size; metadata_read = bs->dsk.meta_block_size;
prev_done = 0; prev_done = 0;
done_len = 0; done_len = 0;
done_pos = 0; done_pos = 0;
metadata_read = 0;
// Read the rest of the metadata // Read the rest of the metadata
while (1) while (1)
{ {
@ -150,7 +149,7 @@ resume_1:
GET_SQE(); GET_SQE();
data->iov = { data->iov = {
(uint8_t*)metadata_buffer + (bs->inmemory_meta (uint8_t*)metadata_buffer + (bs->inmemory_meta
? metadata_read ? metadata_read-md_offset
: (prev == 1 ? bs->metadata_buf_size : 0)), : (prev == 1 ? bs->metadata_buf_size : 0)),
bs->dsk.meta_len - metadata_read > bs->metadata_buf_size ? bs->metadata_buf_size : bs->dsk.meta_len - metadata_read, bs->dsk.meta_len - metadata_read > bs->metadata_buf_size ? bs->metadata_buf_size : bs->dsk.meta_len - metadata_read,
}; };
@ -170,7 +169,7 @@ resume_1:
if (prev_done) if (prev_done)
{ {
void *done_buf = bs->inmemory_meta void *done_buf = bs->inmemory_meta
? ((uint8_t*)metadata_buffer + done_pos) ? ((uint8_t*)metadata_buffer + done_pos-md_offset)
: ((uint8_t*)metadata_buffer + (prev_done == 2 ? bs->metadata_buf_size : 0)); : ((uint8_t*)metadata_buffer + (prev_done == 2 ? bs->metadata_buf_size : 0));
unsigned count = bs->dsk.meta_block_size / bs->dsk.clean_entry_size; unsigned count = bs->dsk.meta_block_size / bs->dsk.clean_entry_size;
for (int sector = 0; sector < done_len; sector += bs->dsk.meta_block_size) for (int sector = 0; sector < done_len; sector += bs->dsk.meta_block_size)

View File

@ -9,7 +9,7 @@ class blockstore_init_meta
int wait_state = 0; int wait_state = 0;
bool zero_on_init = false; bool zero_on_init = false;
void *metadata_buffer = NULL; void *metadata_buffer = NULL;
uint64_t metadata_read = 0; uint64_t metadata_read = 0, md_offset = 0;
int prev = 0, prev_done = 0, done_len = 0, submitted = 0; int prev = 0, prev_done = 0, done_len = 0, submitted = 0;
uint64_t done_cnt = 0, done_pos = 0; uint64_t done_cnt = 0, done_pos = 0;
uint64_t entries_loaded = 0; uint64_t entries_loaded = 0;