* see aio_sparse_read()
*/
void sparse_read(uint64_t off, uint64_t len, std::map<uint64_t,uint64_t> *m,
- bufferlist *data_bl, int *prval);
+ bufferlist *data_bl, int *prval,
+ uint64_t truncate_size = 0,
+ uint32_t truncate_seq = 0);
/**
* omap_get_vals: keys and values from the object omap
void librados::ObjectReadOperation::sparse_read(uint64_t off, uint64_t len,
std::map<uint64_t,uint64_t> *m,
- bufferlist *data_bl, int *prval)
+ bufferlist *data_bl, int *prval,
+ uint64_t truncate_size,
+ uint32_t truncate_seq)
{
ceph_assert(impl);
::ObjectOperation *o = &impl->o;
- o->sparse_read(off, len, m, data_bl, prval);
+ o->sparse_read(off, len, m, data_bl, prval, truncate_size, truncate_seq);
}
void librados::ObjectReadOperation::checksum(rados_checksum_type_t type,
}
};
void sparse_read(uint64_t off, uint64_t len, std::map<uint64_t, uint64_t>* m,
- ceph::buffer::list* data_bl, int* prval) {
+ ceph::buffer::list* data_bl, int* prval,
+ uint64_t truncate_size = 0, uint32_t truncate_seq = 0) {
ceph::buffer::list bl;
add_data(CEPH_OSD_OP_SPARSE_READ, off, len, bl);
+ OSDOp& o = *ops.rbegin();
+ o.op.extent.truncate_size = truncate_size;
+ o.op.extent.truncate_seq = truncate_seq;
set_handler(CB_ObjectOperation_sparse_read(data_bl, m, prval, nullptr));
out_rval.back() = prval;
}
void ObjectReadOperation::sparse_read(uint64_t off, uint64_t len,
std::map<uint64_t,uint64_t> *m,
- bufferlist *pbl, int *prval) {
+ bufferlist *pbl, int *prval,
+ uint64_t truncate_size,
+ uint32_t truncate_seq) {
TestObjectOperationImpl *o = reinterpret_cast<TestObjectOperationImpl*>(impl);
ObjectOperationTestImpl op;