forked from vitalif/vitastor
Do not alter dsk.meta_offset/len to skip superblock
parent
4d777c6729
commit
ea632367e9
|
@ -541,7 +541,7 @@ resume_1:
|
|||
data->iov = (struct iovec){ meta_old.buf, bs->dsk.meta_block_size };
|
||||
data->callback = simple_callback_w;
|
||||
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++;
|
||||
}
|
||||
|
@ -585,7 +585,7 @@ resume_1:
|
|||
data->iov = (struct iovec){ meta_new.buf, bs->dsk.meta_block_size };
|
||||
data->callback = simple_callback_w;
|
||||
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++;
|
||||
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;
|
||||
wr.submitted = true;
|
||||
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++;
|
||||
}
|
||||
|
|
|
@ -130,12 +130,11 @@ resume_1:
|
|||
}
|
||||
}
|
||||
// Skip superblock
|
||||
bs->dsk.meta_offset += bs->dsk.meta_block_size;
|
||||
bs->dsk.meta_len -= bs->dsk.meta_block_size;
|
||||
md_offset = bs->dsk.meta_block_size;
|
||||
metadata_read = bs->dsk.meta_block_size;
|
||||
prev_done = 0;
|
||||
done_len = 0;
|
||||
done_pos = 0;
|
||||
metadata_read = 0;
|
||||
// Read the rest of the metadata
|
||||
while (1)
|
||||
{
|
||||
|
@ -150,7 +149,7 @@ resume_1:
|
|||
GET_SQE();
|
||||
data->iov = {
|
||||
(uint8_t*)metadata_buffer + (bs->inmemory_meta
|
||||
? metadata_read
|
||||
? metadata_read-md_offset
|
||||
: (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,
|
||||
};
|
||||
|
@ -170,7 +169,7 @@ resume_1:
|
|||
if (prev_done)
|
||||
{
|
||||
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));
|
||||
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)
|
||||
|
|
|
@ -9,7 +9,7 @@ class blockstore_init_meta
|
|||
int wait_state = 0;
|
||||
bool zero_on_init = false;
|
||||
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;
|
||||
uint64_t done_cnt = 0, done_pos = 0;
|
||||
uint64_t entries_loaded = 0;
|
||||
|
|
Loading…
Reference in New Issue