version 1.22, 2005/11/04 21:04:20 |
version 1.22.2.2, 2005/11/18 08:44:54 |
Line 70 __KERNEL_RCSID(0, "$NetBSD$"); |
|
Line 70 __KERNEL_RCSID(0, "$NetBSD$"); |
|
#include <miscfs/specfs/specdev.h> /* XXX */ /* defines v_rdev */ |
#include <miscfs/specfs/specdev.h> /* XXX */ /* defines v_rdev */ |
|
|
#include <uvm/uvm_extern.h> |
#include <uvm/uvm_extern.h> |
|
#include <uvm/uvm_readahead.h> |
|
|
#include <fs/msdosfs/bpb.h> |
#include <fs/msdosfs/bpb.h> |
#include <fs/msdosfs/direntry.h> |
#include <fs/msdosfs/direntry.h> |
|
|
return (0); |
return (0); |
|
|
if (vp->v_type == VREG) { |
if (vp->v_type == VREG) { |
|
const int advice = IO_ADV_DECODE(ap->a_ioflag); |
|
|
while (uio->uio_resid > 0) { |
while (uio->uio_resid > 0) { |
bytelen = MIN(dep->de_FileSize - uio->uio_offset, |
bytelen = MIN(dep->de_FileSize - uio->uio_offset, |
uio->uio_resid); |
uio->uio_resid); |
|
|
break; |
break; |
win = ubc_alloc(&vp->v_uobj, uio->uio_offset, |
win = ubc_alloc(&vp->v_uobj, uio->uio_offset, |
&bytelen, UBC_READ); |
&bytelen, UBC_READ); |
|
uvm_ra_request(vp->v_ractx, advice, &vp->v_uobj, |
|
uio->uio_offset, bytelen); |
error = uiomove(win, bytelen, uio); |
error = uiomove(win, bytelen, uio); |
flags = UBC_WANT_UNMAP(vp) ? UBC_UNMAP : 0; |
flags = UBC_WANT_UNMAP(vp) ? UBC_UNMAP : 0; |
ubc_release(win, flags); |
ubc_release(win, flags); |