diff options
author | kib <kib@FreeBSD.org> | 2012-03-17 23:00:32 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2012-03-17 23:00:32 +0000 |
commit | 2963c3c979b3491c27ed851b7e3ea47c0ae4167c (patch) | |
tree | f682c3a5094240f4bd795d32ef82092b98ddaf50 /sys/vm/vm_object.h | |
parent | 7af7d69c50251e2fa1d112707e1ec06e1830e1b3 (diff) | |
download | FreeBSD-src-2963c3c979b3491c27ed851b7e3ea47c0ae4167c.zip FreeBSD-src-2963c3c979b3491c27ed851b7e3ea47c0ae4167c.tar.gz |
In vm_object_page_clean(), do not clean OBJ_MIGHTBEDIRTY object flag
if the filesystem performed short write and we are skipping the page
due to this.
Propogate write error from the pager back to the callers of
vm_pageout_flush(). Report the failure to write a page from the
requested range as the FALSE return value from vm_object_page_clean(),
and propagate it back to msync(2) to return EIO to usermode.
While there, convert the clearobjflags variable in the
vm_object_page_clean() and arguments of the helper functions to
boolean.
PR: kern/165927
Reviewed by: alc
MFC after: 2 weeks
Diffstat (limited to 'sys/vm/vm_object.h')
-rw-r--r-- | sys/vm/vm_object.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index b59f7fe..7f769a5 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -227,7 +227,7 @@ void vm_object_set_writeable_dirty (vm_object_t); void vm_object_init (void); void vm_object_page_cache(vm_object_t object, vm_pindex_t start, vm_pindex_t end); -void vm_object_page_clean(vm_object_t object, vm_ooffset_t start, +boolean_t vm_object_page_clean(vm_object_t object, vm_ooffset_t start, vm_ooffset_t end, int flags); void vm_object_page_remove(vm_object_t object, vm_pindex_t start, vm_pindex_t end, int options); @@ -238,7 +238,7 @@ void vm_object_reference_locked(vm_object_t); int vm_object_set_memattr(vm_object_t object, vm_memattr_t memattr); void vm_object_shadow (vm_object_t *, vm_ooffset_t *, vm_size_t); void vm_object_split(vm_map_entry_t); -void vm_object_sync(vm_object_t, vm_ooffset_t, vm_size_t, boolean_t, +boolean_t vm_object_sync(vm_object_t, vm_ooffset_t, vm_size_t, boolean_t, boolean_t); void vm_object_madvise (vm_object_t, vm_pindex_t, int, int); #endif /* _KERNEL */ |