diff options
author | dg <dg@FreeBSD.org> | 1995-03-22 12:24:11 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1995-03-22 12:24:11 +0000 |
commit | 4aa815202930e674583ec1ac86cfe5f12f0238f7 (patch) | |
tree | e34506afcd75a7cb263dc3fc0bab9497c1ee119b /sys/vm/vm_map.c | |
parent | 0a2856a018c830e6331101f404bca0cb8a56373d (diff) | |
download | FreeBSD-src-4aa815202930e674583ec1ac86cfe5f12f0238f7.zip FreeBSD-src-4aa815202930e674583ec1ac86cfe5f12f0238f7.tar.gz |
Removed unused fifth argument to vm_object_page_clean(). Fixed bug with
VTEXT not always getting cleared when it is supposed to. Added check to
make sure that vm_object_remove() isn't called with a NULL pager or for
a pager for an OBJ_INTERNAL object (neither of which will be on the hash
list). Clear OBJ_CANPERSIST if we decide to terminate it because of no
resident pages.
Diffstat (limited to 'sys/vm/vm_map.c')
-rw-r--r-- | sys/vm/vm_map.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 183b46a..db18908 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_map.c,v 1.17 1995/03/16 18:17:14 bde Exp $ + * $Id: vm_map.c,v 1.18 1995/03/21 01:11:40 davidg Exp $ */ /* @@ -1499,14 +1499,16 @@ vm_map_clean(map, start, end, syncio, invalidate) /* * Flush pages if writing is allowed. XXX should we continue * on an error? + * + * XXX Doing async I/O and then removing all the pages from + * the object before it completes is probably a very bad + * idea. */ - if ((current->protection & VM_PROT_WRITE) && - !vm_object_page_clean(object, offset, offset + size, - syncio, FALSE)) { - vm_object_unlock(object); - vm_map_unlock_read(map); - return (KERN_FAILURE); - } + if (current->protection & VM_PROT_WRITE) +#if 0 + vm_object_page_clean(object, offset, offset + size, syncio); +#endif + vm_object_page_clean(object, offset, offset + size, TRUE); if (invalidate) vm_object_page_remove(object, offset, offset + size, FALSE); vm_object_unlock(object); |