- rc = iops(inode)->o_brw(READ, iid(inode),inode, page, 0);
- if (rc == PAGE_SIZE ) {
+ oa = obdo_alloc();
+ if (!oa) {
+ printk("obdfs_readpage: obdo_alloc failure\n");
+ EXIT;
+ return -ENOMEM;
+ }
+
+ oa->o_id = inode->i_ino;
+ err = IOPS(inode, brw)(READ, IID(inode), oa, (char *)page_address(page),
+ PAGE_SIZE, (page->index) << PAGE_SHIFT, 0);
+ obdo_to_inode(inode, oa); /* copy o_blocks to i_blocks */
+ obdo_free(oa);
+
+ if (err == PAGE_SIZE ) {