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);
}