freebsd-dev/sys/vm
Alan Cox ec9c9e7363 Eliminate inconsistency in the setting of the B_DONE flag. Specifically,
make the b_iodone callback responsible for setting it if it is needed.
Previously, it was set unconditionally by bufdone() without holding
whichever lock is shared by the b_iodone callback and the corresponding
top-half function.  Consequently, in a race, the top-half function could
conclude that operation was done before the b_iodone callback finished.
See, for example, aio_physwakeup() and aio_fphysio().

Note: I don't believe that the other, more widely-used b_iodone callbacks
are affected.

Discussed with: jeff
Reviewed by: phk
MFC after: 2 weeks
2005-07-20 19:06:06 +00:00
..
default_pager.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
device_pager.c Add a comment to the effect that fictitious pages do not require the 2005-06-10 17:27:54 +00:00
memguard.c Well, it seems that I pre-maturely removed the "All rights reserved" 2005-02-16 21:45:59 +00:00
memguard.h Well, it seems that I pre-maturely removed the "All rights reserved" 2005-02-16 21:45:59 +00:00
phys_pager.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
pmap.h Introduce a procedure, pmap_page_init(), that initializes the 2005-06-10 03:33:36 +00:00
swap_pager.c Eliminate inconsistency in the setting of the B_DONE flag. Specifically, 2005-07-20 19:06:06 +00:00
swap_pager.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
uma_core.c Further UMA statistics related changes: 2005-07-20 18:47:42 +00:00
uma_dbg.c Improve canonicalization of copyrights. Order copyrights by order of 2005-07-16 09:51:52 +00:00
uma_dbg.h Improve canonicalization of copyrights. Order copyrights by order of 2005-07-16 09:51:52 +00:00
uma_int.h Improve canonicalization of copyrights. Order copyrights by order of 2005-07-16 09:51:52 +00:00
uma.h Improve canonicalization of copyrights. Order copyrights by order of 2005-07-16 09:51:52 +00:00
vm_contig.c The new contigmalloc(9) has a bad degenerate case where there were 2005-06-11 00:05:16 +00:00
vm_extern.h - Change the vm_mmap() function to accept an objtype_t parameter specifying 2005-04-01 20:00:11 +00:00
vm_fault.c Convert a remaining !fs.map->system_map to 2005-07-14 21:18:07 +00:00
vm_glue.c Use low level constructs borrowed from interrupt threads to wait for 2005-05-23 23:01:53 +00:00
vm_init.c Add the vm.exec_map_entries tunable and read-only sysctl, which controls 2005-04-25 19:22:05 +00:00
vm_kern.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_kern.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_map.c Eliminate an incorrect (and unnecessary) cast. 2005-07-20 18:41:08 +00:00
vm_map.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_meter.c Enable debug_mpsafevm on ia64 due to the severe functional regression 2005-05-08 23:56:16 +00:00
vm_mmap.c Move MAC check_vnode_mmap entry point out from being exclusive to 2005-04-14 16:03:30 +00:00
vm_object.c - We need to inhert the OBJ_NEEDGIANT flag from the original object in 2005-05-04 20:54:16 +00:00
vm_object.h - Add a new object flag "OBJ_NEEDSGIANT". We set this flag if the 2005-05-03 11:11:26 +00:00
vm_page.c - In vm_page_insert() hold the backing vnode when the first page 2005-03-15 14:14:09 +00:00
vm_page.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_pageout.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_pageout.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_pageq.c Introduce a procedure, pmap_page_init(), that initializes the 2005-06-10 03:33:36 +00:00
vm_pager.c Remove calls to spl*(). 2005-05-18 20:45:33 +00:00
vm_pager.h Update some comments to reflect the change from spl-based to lock-based 2005-05-18 22:08:52 +00:00
vm_param.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_unix.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_zeroidle.c Set the scheduling class of the zeroidle thread to PRI_IDLE. 2005-02-04 06:18:31 +00:00
vm.h - Change the vm_mmap() function to accept an objtype_t parameter specifying 2005-04-01 20:00:11 +00:00
vnode_pager.c Remove a stale comment concerning spl* usage. 2005-05-19 03:53:07 +00:00
vnode_pager.h Move the body of vop_stdcreatevobject() over to the vnode_pager under 2005-01-24 21:21:59 +00:00