Author: alc
Date: Fri May 15 04:33:35 2009
New Revision: 192134
URL: http://svn.freebsd.org/changeset/base/192134

Log:
  Eliminate unnecessary clearing of the page's dirty mask from various
  getpages functions.
  
  Eliminate a stale comment.

Modified:
  head/sys/fs/smbfs/smbfs_io.c
  head/sys/nfsclient/nfs_bio.c
  head/sys/vm/vnode_pager.c

Modified: head/sys/fs/smbfs/smbfs_io.c
==============================================================================
--- head/sys/fs/smbfs/smbfs_io.c        Fri May 15 01:54:32 2009        
(r192133)
+++ head/sys/fs/smbfs/smbfs_io.c        Fri May 15 04:33:35 2009        
(r192134)
@@ -524,7 +524,9 @@ smbfs_getpages(ap)
                         * Read operation filled a partial page.
                         */
                        m->valid = 0;
-                       vm_page_set_validclean(m, 0, size - toff);
+                       vm_page_set_valid(m, 0, size - toff);
+                       KASSERT((m->dirty & vm_page_bits(0, size - toff)) == 0,
+                           ("smbfs_getpages: page %p is dirty", m));
                } else {
                        /*
                         * Read operation was short.  If no error occured

Modified: head/sys/nfsclient/nfs_bio.c
==============================================================================
--- head/sys/nfsclient/nfs_bio.c        Fri May 15 01:54:32 2009        
(r192133)
+++ head/sys/nfsclient/nfs_bio.c        Fri May 15 04:33:35 2009        
(r192134)
@@ -216,7 +216,9 @@ nfs_getpages(struct vop_getpages_args *a
                         * Read operation filled a partial page.
                         */
                        m->valid = 0;
-                       vm_page_set_validclean(m, 0, size - toff);
+                       vm_page_set_valid(m, 0, size - toff);
+                       KASSERT((m->dirty & vm_page_bits(0, size - toff)) == 0,
+                           ("nfs_getpages: page %p is dirty", m));
                } else {
                        /*
                         * Read operation was short.  If no error occured

Modified: head/sys/vm/vnode_pager.c
==============================================================================
--- head/sys/vm/vnode_pager.c   Fri May 15 01:54:32 2009        (r192133)
+++ head/sys/vm/vnode_pager.c   Fri May 15 04:33:35 2009        (r192134)
@@ -939,17 +939,18 @@ vnode_pager_generic_getpages(vp, m, byte
                            mt));
                } else {
                        /*
-                        * Read did not fill up entire page.  Since this
-                        * is getpages, the page may be mapped, so we have
-                        * to zero the invalid portions of the page even
-                        * though we aren't setting them valid.
+                        * Read did not fill up entire page.
                         *
                         * Currently we do not set the entire page valid,
                         * we just try to clear the piece that we couldn't
                         * read.
                         */
-                       vm_page_set_validclean(mt, 0,
+                       vm_page_set_valid(mt, 0,
                            object->un_pager.vnp.vnp_size - tfoff);
+                       KASSERT((mt->dirty & vm_page_bits(0,
+                           object->un_pager.vnp.vnp_size - tfoff)) == 0,
+                           ("vnode_pager_generic_getpages: page %p is dirty",
+                           mt));
                }
                
                if (i != reqpage) {
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to