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)
This commit is contained in:
parent
add265c6ba
commit
50cfe7fa50
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=216810
@ -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;
|
||||
|
||||
|
@ -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 @@ vm_object_page_clean(vm_object_t object, vm_pindex_t start, vm_pindex_t end,
|
||||
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);
|
||||
}
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user