From 50cfe7fa503448074356ea6f40a22973e489ad4f Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Wed, 29 Dec 2010 22:26:49 +0000 Subject: [PATCH] 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) --- sys/kern/vfs_bio.c | 2 +- sys/vm/vm_object.c | 3 --- sys/vm/vm_object.h | 1 - 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index 0147bffb4b6..b1e278d1397 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -2523,7 +2523,7 @@ vfs_setdirty_locked_object(struct buf *bp) * 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; diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index b7ddf601797..e34c3e907ad 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -809,8 +809,6 @@ vm_object_page_clean(vm_object_t object, vm_pindex_t start, vm_pindex_t end, 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); } diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index 7cce955f33d..b830202432d 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -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 */