Author: chs
Date: Fri Jul 17 23:08:01 2020
New Revision: 363294
URL: https://svnweb.freebsd.org/changeset/base/363294

Log:
  Revert my change from r361855 in favor of a better fix.
  
  Reviewed by:  markj, kib
  Sponsored by: Netflix
  Differential Revision:        https://reviews.freebsd.org/D25430

Modified:
  head/sys/vm/vnode_pager.c

Modified: head/sys/vm/vnode_pager.c
==============================================================================
--- head/sys/vm/vnode_pager.c   Fri Jul 17 22:54:39 2020        (r363293)
+++ head/sys/vm/vnode_pager.c   Fri Jul 17 23:08:01 2020        (r363294)
@@ -1150,30 +1150,28 @@ vnode_pager_generic_getpages_done(struct buf *bp)
                if (mt == bogus_page)
                        continue;
 
-               if (error == 0) {
-                       if (nextoff <= object->un_pager.vnp.vnp_size) {
-                               /*
-                                * Read filled up entire page.
-                                */
-                               vm_page_valid(mt);
-                               KASSERT(mt->dirty == 0,
-                                   ("%s: page %p is dirty", __func__, mt));
-                               KASSERT(!pmap_page_is_mapped(mt),
-                                   ("%s: page %p is mapped", __func__, mt));
-                       } else {
-                               /*
-                                * 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_valid_range(mt, 0,
-                                   object->un_pager.vnp.vnp_size - tfoff);
-                               KASSERT((mt->dirty & vm_page_bits(0,
-                                   object->un_pager.vnp.vnp_size - tfoff)) ==
-                                   0, ("%s: page %p is dirty", __func__, mt));
-                       }
+               if (nextoff <= object->un_pager.vnp.vnp_size) {
+                       /*
+                        * Read filled up entire page.
+                        */
+                       vm_page_valid(mt);
+                       KASSERT(mt->dirty == 0,
+                           ("%s: page %p is dirty", __func__, mt));
+                       KASSERT(!pmap_page_is_mapped(mt),
+                           ("%s: page %p is mapped", __func__, mt));
+               } else {
+                       /*
+                        * 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_valid_range(mt, 0,
+                           object->un_pager.vnp.vnp_size - tfoff);
+                       KASSERT((mt->dirty & vm_page_bits(0,
+                           object->un_pager.vnp.vnp_size - tfoff)) == 0,
+                           ("%s: page %p is dirty", __func__, mt));
                }
 
                if (i < bp->b_pgbefore || i >= bp->b_npages - bp->b_pgafter)
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to