aboutsummaryrefslogtreecommitdiff
path: root/sys/fs
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2001-07-04 19:55:01 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2001-07-04 19:55:01 +0000
commit4a370459ccf2fd3d7a794ebbe6ce7f0eee53d85a (patch)
tree89f98d5ea581383e4a48ad8dc21dec0d4604abf3 /sys/fs
parent54d9214595f26f0d6bbb0fccf55638e0aefec4b1 (diff)
downloadsrc-4a370459ccf2fd3d7a794ebbe6ce7f0eee53d85a.tar.gz
src-4a370459ccf2fd3d7a794ebbe6ce7f0eee53d85a.zip
- Update the vmmeter statistics for vnode pageins and pageouts in
getpages/putpages. - Use vm_page_undirty() instead of messing with pages' dirty fields directly.
Notes
Notes: svn path=/head/; revision=79245
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/smbfs/smbfs_io.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/fs/smbfs/smbfs_io.c b/sys/fs/smbfs/smbfs_io.c
index 1033e8e39bc7..505c90643d24 100644
--- a/sys/fs/smbfs/smbfs_io.c
+++ b/sys/fs/smbfs/smbfs_io.c
@@ -46,6 +46,7 @@
#include <sys/dirent.h>
#include <sys/signalvar.h>
#include <sys/sysctl.h>
+#include <sys/vmmeter.h>
#include <vm/vm.h>
#if __FreeBSD_version < 400000
@@ -444,6 +445,8 @@ smbfs_getpages(ap)
npages = btoc(count);
kva = (vm_offset_t) bp->b_data;
pmap_qenter(kva, pages, npages);
+ cnt.v_vnodein++;
+ cnt.v_vnodepgsin += count;
iov.iov_base = (caddr_t) kva;
iov.iov_len = count;
@@ -484,7 +487,7 @@ smbfs_getpages(ap)
if (nextoff <= size) {
m->valid = VM_PAGE_BITS_ALL;
- m->dirty = 0;
+ vm_page_undirty(m);
} else {
int nvalid = ((size + DEV_BSIZE - 1) - toff) & ~(DEV_BSIZE - 1);
vm_page_set_validclean(m, 0, nvalid);
@@ -580,6 +583,8 @@ smbfs_putpages(ap)
#endif
kva = (vm_offset_t) bp->b_data;
pmap_qenter(kva, pages, npages);
+ cnt.v_vnodeout++;
+ cnt.v_vnodepgsout += count;
iov.iov_base = (caddr_t) kva;
iov.iov_len = count;
@@ -608,7 +613,7 @@ smbfs_putpages(ap)
int nwritten = round_page(count - uio.uio_resid) / PAGE_SIZE;
for (i = 0; i < nwritten; i++) {
rtvals[i] = VM_PAGER_OK;
- pages[i]->dirty = 0;
+ vm_page_undirty(pages[i]);
}
}
return rtvals[0];