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

*** 24,33 **** --- 24,34 ---- * Use is subject to license terms. */ /* * Copyright (c) 2012, Joyent, Inc. All rights reserved. + * Copyright 2015 Nexenta Systems, Inc. All rights reserved. */ #include <sys/types.h> #include <sys/param.h> #include <sys/t_lock.h>
*** 1807,1822 **** } rw_downgrade(&tp->tn_contents); } ! if (len <= PAGESIZE) ! err = tmp_getapage(vp, (u_offset_t)off, len, protp, pl, plsz, ! seg, addr, rw, cr); ! else ! err = pvn_getpages(tmp_getapage, vp, (u_offset_t)off, len, ! protp, pl, plsz, seg, addr, rw, cr); gethrestime(&now); tp->tn_atime = now; if (rw == S_WRITE) tp->tn_mtime = now; --- 1808,1819 ---- } rw_downgrade(&tp->tn_contents); } ! err = pvn_getpages(tmp_getapage, vp, (u_offset_t)off, len, protp, ! pl, plsz, seg, addr, rw, cr); gethrestime(&now); tp->tn_atime = now; if (rw == S_WRITE) tp->tn_mtime = now;
*** 1825,1835 **** rw_exit(&tp->tn_contents); return (err); } /* ! * Called from pvn_getpages or swap_getpage to get a particular page. */ /*ARGSUSED*/ static int tmp_getapage( struct vnode *vp, --- 1822,1832 ---- rw_exit(&tp->tn_contents); return (err); } /* ! * Called from pvn_getpages to get a particular page. */ /*ARGSUSED*/ static int tmp_getapage( struct vnode *vp,