RETURN(PTR_ERR(ocp));
ocp->ocp_callback = ll_complete_readpage_24;
+ ocp->ocp_off = (obd_off)page->index << PAGE_CACHE_SHIFT;
ocp->ocp_count = PAGE_CACHE_SIZE;
ocp->ocp_flag = 0;
LASSERT(page->private == (unsigned long)ocp);
LASSERT(PageLocked(page));
+ ll_page_acct(0, -1); /* io before dirty, this is so lame. */
rc = ll_clear_dirty_pages(ll_i2obdconn(inode),
ll_i2info(inode)->lli_smd,
page->index, page->index);
GOTO(out, rc = PTR_ERR(ocp));
ocp->ocp_callback = ll_complete_writepage_24;
+ ocp->ocp_off = (obd_off)page->index << PAGE_CACHE_SHIFT;
ocp->ocp_count = ll_ocp_write_count(inode, page);
ocp->ocp_flag = OBD_BRW_CREATE|OBD_BRW_FROM_GRANT;
obd_brw_plug(OBD_BRW_WRITE, exp, ll_i2info(inode)->lli_smd, NULL);
rc = ll_start_ocp_io(page);
if (rc == 0) {
- ll_page_acct(-1, 1);
+ ll_page_acct(0, 1);
ll_start_io_from_dirty(inode, ll_complete_writepage_24);
} else {
ocp_free(page);