forked from vitalif/vitastor
Support reading bitmaps in fio_sec_osd
parent
0785bdf8b3
commit
e9d2f79aa7
|
@ -319,7 +319,23 @@ static int sec_getevents(struct thread_data *td, unsigned int min, unsigned int
|
||||||
fprintf(stderr, "Short read: retval = %ld instead of %llu\n", reply.hdr.retval, io->xfer_buflen);
|
fprintf(stderr, "Short read: retval = %ld instead of %llu\n", reply.hdr.retval, io->xfer_buflen);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
read_blocking(bsd->connect_fd, io->xfer_buf, io->xfer_buflen);
|
// Support bitmap
|
||||||
|
uint64_t bitmap = 0;
|
||||||
|
int iovcnt = 0;
|
||||||
|
iovec iov[2];
|
||||||
|
if (reply.sec_rw.attr_len > 0)
|
||||||
|
{
|
||||||
|
if (reply.sec_rw.attr_len <= 8)
|
||||||
|
iov[iovcnt++] = { .iov_base = &bitmap, .iov_len = reply.sec_rw.attr_len };
|
||||||
|
else
|
||||||
|
iov[iovcnt++] = { .iov_base = (void*)(bitmap = (uint64_t)malloc(reply.sec_rw.attr_len)), .iov_len = reply.sec_rw.attr_len };
|
||||||
|
}
|
||||||
|
iov[iovcnt++] = { .iov_base = io->xfer_buf, .iov_len = io->xfer_buflen };
|
||||||
|
readv_blocking(bsd->connect_fd, iov, iovcnt);
|
||||||
|
if (reply.sec_rw.attr_len > 8)
|
||||||
|
{
|
||||||
|
free((void*)bitmap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (io->ddir == DDIR_WRITE)
|
else if (io->ddir == DDIR_WRITE)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue