pgoff_t start, struct cl_read_ahead *ra)
{
struct osc_object *osc = cl2osc(ios->cis_obj);
+ struct osc_io *oio = cl2osc_io(env, ios);
struct ldlm_lock *dlmlock;
ENTRY;
if (dlmlock == NULL)
RETURN(-ENODATA);
+ oio->oi_is_readahead = 1;
if (dlmlock->l_req_mode != LCK_PR) {
struct lustre_handle lockh;
ra->cra_rpc_pages = osc_cli(osc)->cl_max_pages_per_rpc;
ra->cra_end_idx = CL_PAGE_EOF;
ra->cra_release = osc_read_ahead_release;
- ra->cra_cbdata = dlmlock;
+ ra->cra_dlmlock = dlmlock;
+ ra->cra_oio = oio;
RETURN(0);
}
EXIT;
}
-static struct cl_io_operations mdc_io_ops = {
+static const struct cl_io_operations mdc_io_ops = {
.op = {
[CIT_READ] = {
- .cio_iter_init = osc_io_rw_iter_init,
+ .cio_iter_init = osc_io_iter_init,
.cio_iter_fini = osc_io_rw_iter_fini,
.cio_start = osc_io_read_start,
},
[CIT_WRITE] = {
- .cio_iter_init = osc_io_rw_iter_init,
+ .cio_iter_init = osc_io_iter_init,
.cio_iter_fini = osc_io_rw_iter_fini,
.cio_start = osc_io_write_start,
.cio_end = osc_io_end,
},
},
.cio_read_ahead = mdc_io_read_ahead,
+ .cio_lru_reserve = osc_io_lru_reserve,
.cio_submit = osc_io_submit,
.cio_commit_async = osc_io_commit_async,
.cio_extent_release = osc_io_extent_release,