Print this page
5382 pvn_getpages handles lengths <= PAGESIZE just fine

*** 24,33 **** --- 24,34 ---- * Use is subject to license terms. */ /* * Copyright (c) 2013, Joyent, Inc. All rights reserved. + * Copyright 2015 Nexenta Systems, Inc. All rights reserved. */ #include <sys/param.h> #include <sys/t_lock.h> #include <sys/systm.h>
*** 1424,1435 **** return (error); } /* ! * Called from pvn_getpages or pcfs_getpage to get a particular page. ! * When we are called the pcfs is already locked. */ /*ARGSUSED*/ static int pcfs_getapage( struct vnode *vp, --- 1425,1436 ---- return (error); } /* ! * Called from pvn_getpages to get a particular page. When we are called ! * the pcfs is already locked. */ /*ARGSUSED*/ static int pcfs_getapage( struct vnode *vp,
*** 1599,1615 **** return (err); if (protp != NULL) *protp = PROT_ALL; ASSERT((off & PAGEOFFSET) == 0); ! if (len <= PAGESIZE) { ! err = pcfs_getapage(vp, off, len, protp, pl, ! plsz, seg, addr, rw, cr); ! } else { ! err = pvn_getpages(pcfs_getapage, vp, off, ! len, protp, pl, plsz, seg, addr, rw, cr); ! } pc_unlockfs(fsp); return (err); } --- 1600,1612 ---- return (err); if (protp != NULL) *protp = PROT_ALL; ASSERT((off & PAGEOFFSET) == 0); ! err = pvn_getpages(pcfs_getapage, vp, off, len, protp, pl, plsz, ! seg, addr, rw, cr); ! pc_unlockfs(fsp); return (err); }