/**
* Return lsme by file offset (only used for compression)
*/
-static struct lov_stripe_md_entry *lov_io_lsme_at(const struct lu_env *env,
- const struct cl_io_slice *ios,
+static struct lov_stripe_md_entry *lov_io_lsme_at(const struct lov_io *lio,
const pgoff_t page_index)
{
- loff_t offset;
- struct cl_fault_io *fio;
- struct lov_io *lio = cl2lov_io(env, ios);
+ loff_t offset = page_index << PAGE_SHIFT;
struct lov_object *lov = lio->lis_object;
struct lov_layout_composite *comp = &lov->u.composite;
int start_index = 0;
int end_index = comp->lo_entry_count - 1;
int i;
- fio = &ios->cis_io->u.ci_fault;
- offset = cl_offset(ios->cis_obj, page_index);
LASSERT(lov->lo_type == LLT_COMP);
/* This is actual file offset so nothing can cover eof. */
struct cl_2queue *cl2q = &lov_env_info(env)->lti_cl2q;
page = cl_page_list_first(qin);
- lsme = lov_io_lsme_at(env, ios, page->cp_page_index);
+ lsme = lov_io_lsme_at(lio, page->cp_page_index);
set_page_compression(page, lsme);
if (lov_page_is_empty(page)) {
ENTRY;
page = cl_page_list_first(queue);
- lsme = lov_io_lsme_at(env, ios, page->cp_page_index);
+ lsme = lov_io_lsme_at(lio, page->cp_page_index);
if (lio->lis_nr_subios == 1) {
int idx = lio->lis_single_subio_index;
LASSERT(!lov_page_is_empty(page));
cl_page_list_move(plist, queue, page);
- lsme = lov_io_lsme_at(env, ios, page->cp_page_index);
+ lsme = lov_io_lsme_at(lio, page->cp_page_index);
set_page_compression(page, lsme);
index = page->cp_lov_index;
break;
cl_page_list_move(plist, queue, page);
- lsme = lov_io_lsme_at(env, ios, page->cp_page_index);
+ lsme = lov_io_lsme_at(lio, page->cp_page_index);
set_page_compression(page, lsme);
}