const hobject_t &hoid,
uint64_t off,
uint64_t len,
+ uint32_t op_flags,
bufferlist *bl)
{
- return store->read(coll, hoid, off, len, *bl);
+ return store->read(coll, hoid, off, len, *bl, op_flags);
}
struct AsyncReadCallback : public GenContext<ThreadPool::TPHandle&> {
dout(10) << " async_read noted for " << soid << dendl;
} else {
int r = pgbackend->objects_read_sync(
- soid, op.extent.offset, op.extent.length, &osd_op.outdata);
+ soid, op.extent.offset, op.extent.length, op.flags, &osd_op.outdata);
if (r >= 0)
op.extent.length = r;
else {
last < miter->first) {
bufferlist t;
uint64_t len = miter->first - last;
- r = pgbackend->objects_read_sync(
- soid, last, len, &t);
+ r = pgbackend->objects_read_sync(soid, last, len, op.flags, &t);
if (!t.is_zero()) {
osd->clog->error() << coll << " " << soid << " sparse-read found data in hole "
<< last << "~" << len << "\n";
}
bufferlist tmpbl;
- r = pgbackend->objects_read_sync(
- soid, miter->first, miter->second, &tmpbl);
+ r = pgbackend->objects_read_sync(soid, miter->first, miter->second, op.flags, &tmpbl);
if (r < 0)
break;
if (last < end) {
bufferlist t;
uint64_t len = end - last;
- r = pgbackend->objects_read_sync(
- soid, last, len, &t);
+ r = pgbackend->objects_read_sync(soid, last, len, op.flags, &t);
if (!t.is_zero()) {
osd->clog->error() << coll << " " << soid << " sparse-read found data in hole "
<< last << "~" << len << "\n";
cb->len = result;
} else {
result = pgbackend->objects_read_sync(
- oi.soid, cursor.data_offset, left, &bl);
+ oi.soid, cursor.data_offset, left, osd_op.op.flags, &bl);
if (result < 0)
return result;
}