Author: kib
Date: Wed Dec 29 22:26:49 2010
New Revision: 216810
URL: http://svn.freebsd.org/changeset/base/216810

Log:
  Remove OBJ_CLEANING flag. The vfs_setdirty_locked_object() is the only
  consumer of the flag, and it used the flag because OBJ_MIGHTBEDIRTY
  was cleared early in vm_object_page_clean, before the cleaning pass
  was done. This is no longer true after r216799.
  
   Moreover, since OBJ_CLEANING is a flag, and not the counter, it could
  be reset too prematurely when parallel vm_object_page_clean() are
  performed.
  
  Reviewed by:  alc (as a part of the bigger patch)
  MFC after:    1 month (after r216799 is merged)

Modified:
  head/sys/kern/vfs_bio.c
  head/sys/vm/vm_object.c
  head/sys/vm/vm_object.h

Modified: head/sys/kern/vfs_bio.c
==============================================================================
--- head/sys/kern/vfs_bio.c     Wed Dec 29 21:38:00 2010        (r216809)
+++ head/sys/kern/vfs_bio.c     Wed Dec 29 22:26:49 2010        (r216810)
@@ -2523,7 +2523,7 @@ vfs_setdirty_locked_object(struct buf *b
         * We qualify the scan for modified pages on whether the
         * object has been flushed yet.
         */
-       if (object->flags & (OBJ_MIGHTBEDIRTY|OBJ_CLEANING)) {
+       if ((object->flags & OBJ_MIGHTBEDIRTY) != 0) {
                vm_offset_t boffset;
                vm_offset_t eoffset;
 

Modified: head/sys/vm/vm_object.c
==============================================================================
--- head/sys/vm/vm_object.c     Wed Dec 29 21:38:00 2010        (r216809)
+++ head/sys/vm/vm_object.c     Wed Dec 29 22:26:49 2010        (r216810)
@@ -809,8 +809,6 @@ vm_object_page_clean(vm_object_t object,
 
        tend = (end == 0) ? object->size : end;
 
-       vm_object_set_flag(object, OBJ_CLEANING);
-
        /*
         * Make the page read-only so we can then clear the object flags.
         *
@@ -849,7 +847,6 @@ rescan:
        VOP_FSYNC(vp, (pagerflags & VM_PAGER_PUT_SYNC) ? MNT_WAIT : 0);
 #endif
 
-       vm_object_clear_flag(object, OBJ_CLEANING);
        if (clearobjflags && start == 0 && tend == object->size)
                vm_object_clear_flag(object, OBJ_MIGHTBEDIRTY);
 }

Modified: head/sys/vm/vm_object.h
==============================================================================
--- head/sys/vm/vm_object.h     Wed Dec 29 21:38:00 2010        (r216809)
+++ head/sys/vm/vm_object.h     Wed Dec 29 22:26:49 2010        (r216810)
@@ -155,7 +155,6 @@ struct vm_object {
 #define        OBJ_NOSPLIT     0x0010          /* dont split this object */
 #define OBJ_PIPWNT     0x0040          /* paging in progress wanted */
 #define OBJ_MIGHTBEDIRTY 0x0100                /* object might be dirty, only 
for vnode */
-#define OBJ_CLEANING   0x0200
 #define        OBJ_COLORED     0x1000          /* pg_color is defined */
 #define        OBJ_ONEMAPPING  0x2000          /* One USE (a single, 
non-forked) mapping flag */
 #define        OBJ_DISCONNECTWNT 0x4000        /* disconnect from vnode wanted 
*/
_______________________________________________
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