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->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++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue