-out:
- return (err);
-}
-
-/*
- * Copy the portion of the file indicated from page into the file.
- *
- * IN: ip - inode of file to push page data to.
- * wbc - Unused parameter
- * data - pointer to address_space
- *
- * RETURN: 0 if success
- * error code if failure
- *
- * Timestamps:
- * vp - ctime|mtime updated
- */
-/*ARGSUSED*/
-int
-zfs_putpage(struct page *page, struct writeback_control *wbc, void *data)
-{
- struct address_space *mapping = data;
- struct inode *ip = mapping->host;
- znode_t *zp = ITOZ(ip);
- zfs_sb_t *zsb = ITOZSB(ip);
- rl_t *rl;
- u_offset_t io_off;
- size_t io_len;
- size_t len;
- int error;
-
- io_off = page_offset(page);
- io_len = PAGESIZE;
-
- ZFS_ENTER(zsb);
- ZFS_VERIFY_ZP(zp);
-
- rl = zfs_range_lock(zp, io_off, io_len, RL_WRITER);
-
- if (io_off > zp->z_size) {
- /* past end of file */
- zfs_range_unlock(rl);
- ZFS_EXIT(zsb);
- return (0);
+ if (sync) {
+ zil_commit(zsb->z_log, zp->z_id);
+ zfs_putpage_commit_cb(pp, err);