Author: kib
Date: Wed Aug 20 08:24:37 2014
New Revision: 270205
URL: http://svnweb.freebsd.org/changeset/base/270205

Log:
  MFC r269907:
  Fix leaks of unqueued unwired pages.

Modified:
  stable/10/sys/kern/kern_exec.c
  stable/10/sys/kern/uipc_shm.c
  stable/10/sys/vm/vm_glue.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/kern/kern_exec.c
==============================================================================
--- stable/10/sys/kern/kern_exec.c      Wed Aug 20 08:15:23 2014        
(r270204)
+++ stable/10/sys/kern/kern_exec.c      Wed Aug 20 08:24:37 2014        
(r270205)
@@ -996,6 +996,7 @@ exec_map_first_page(imgp)
        vm_page_xunbusy(ma[0]);
        vm_page_lock(ma[0]);
        vm_page_hold(ma[0]);
+       vm_page_activate(ma[0]);
        vm_page_unlock(ma[0]);
        VM_OBJECT_WUNLOCK(object);
 

Modified: stable/10/sys/kern/uipc_shm.c
==============================================================================
--- stable/10/sys/kern/uipc_shm.c       Wed Aug 20 08:15:23 2014        
(r270204)
+++ stable/10/sys/kern/uipc_shm.c       Wed Aug 20 08:24:37 2014        
(r270205)
@@ -197,6 +197,12 @@ uiomove_object_page(vm_object_t obj, siz
        vm_page_xunbusy(m);
        vm_page_lock(m);
        vm_page_hold(m);
+       if (m->queue == PQ_NONE) {
+               vm_page_deactivate(m);
+       } else {
+               /* Requeue to maintain LRU ordering. */
+               vm_page_requeue(m);
+       }
        vm_page_unlock(m);
        VM_OBJECT_WUNLOCK(obj);
        error = uiomove_fromphys(&m, offset, tlen, uio);
@@ -208,12 +214,6 @@ uiomove_object_page(vm_object_t obj, siz
        }
        vm_page_lock(m);
        vm_page_unhold(m);
-       if (m->queue == PQ_NONE) {
-               vm_page_deactivate(m);
-       } else {
-               /* Requeue to maintain LRU ordering. */
-               vm_page_requeue(m);
-       }
        vm_page_unlock(m);
 
        return (error);

Modified: stable/10/sys/vm/vm_glue.c
==============================================================================
--- stable/10/sys/vm/vm_glue.c  Wed Aug 20 08:15:23 2014        (r270204)
+++ stable/10/sys/vm/vm_glue.c  Wed Aug 20 08:24:37 2014        (r270205)
@@ -251,6 +251,7 @@ vm_imgact_hold_page(vm_object_t object, 
        vm_page_xunbusy(m);
        vm_page_lock(m);
        vm_page_hold(m);
+       vm_page_activate(m);
        vm_page_unlock(m);
 out:
        VM_OBJECT_WUNLOCK(object);
_______________________________________________
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