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;
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);
}
len = MIN(io_len, P2ROUNDUP(zp->z_size, PAGESIZE) - io_off);
error = zfs_putapage(ip, page, io_off, len);
- zfs_range_unlock(rl);
if (zsb->z_os->os_sync == ZFS_SYNC_ALWAYS)
zil_commit(zsb->z_log, zp->z_id);