err = IOPS(inode, brw)(rw, IID(inode), num_obdo, &oa, &bufs_per_obdo,
&page, &count, &offset, &flags);
if ( !err )
- obdfs_set_size (inode, oa->o_size); /* copy o_blocks to i_blocks */
-
-
+ obdfs_to_inode(inode, oa); /* copy o_blocks to i_blocks */
obdo_free(oa);
EXIT;
--num_obdos;
CDEBUG(D_INFO, "free obdo %ld\n",(long)obdos[num_obdos]->o_id);
/* copy o_blocks to i_blocks */
- obdfs_set_size (inodes[num_obdos], obdos[num_obdos]->o_size);
+ obdfs_to_inode(inodes[num_obdos], obdos[num_obdos]);
obdo_free(obdos[num_obdos]);
}
CDEBUG(D_INFO, "obdo_free done\n");
int rc;
struct inode *inode = page->mapping->host;
loff_t pos = ((loff_t)page->index << PAGE_CACHE_SHIFT) + to;
- // XXX test with synchronous writes
- rc = obdfs_do_writepage(page, 1);
+ rc = obdfs_do_writepage(page, 0);
kunmap(page);
if (pos > inode->i_size) {
- obdfs_set_size (inode, pos);
+ inode->i_size = pos;
obdfs_change_inode(inode);
}
return 0;
EXIT;
return;
}
-
- obdfs_set_size (inode, inode->i_size);
oa = obdo_alloc();
if ( !oa ) {
/* XXX This would give an inconsistent FS, so deal with it as