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,