freebsd-nq/sys/vm
Alan Cox 20eec4bbdb Fix a deadlock between vm_fault() and vm_mmap(): The expected lock ordering
between vm_map and vnode locks is that vm_map locks are acquired first.  In
revision 1.150 mmap(2) was changed to pass a locked vnode into vm_mmap().
This creates a lock-order reversal when vm_mmap() calls one of the vm_map
routines that acquires a vm_map lock.  The solution implemented herein is
to release the vnode lock in mmap() before calling vm_mmap() and reacquire
this lock if necessary in vm_mmap().

Approved by:	re (scottl)
Reviewed by:	jeff, kan, rwatson
2003-12-06 05:45:32 +00:00
..
default_pager.c Access the swap_pagers' ->putpages() through swappagerops instead 2003-08-06 12:05:48 +00:00
device_pager.c The addition of a locking assertion to vm_page_zero_invalid() has revealed 2003-10-05 22:23:44 +00:00
phys_pager.c Use sparse struct initializations for struct pagerops. 2003-08-05 06:51:26 +00:00
pmap.h Move pmap_resident_count() from the MD pmap.h to the MI pmap.h. 2003-10-06 01:47:12 +00:00
swap_pager.c - Modify swap_pager_copy() and its callers such that the source and 2003-11-01 08:57:26 +00:00
swap_pager.h Staticize swap_pager_putpages() 2003-08-06 12:08:27 +00:00
uma_core.c Fix all users of mp_maxid to use the same semantics, namely: 2003-12-03 14:57:26 +00:00
uma_dbg.c Provide a bit more help with "memory overwritten after free" style bugs. 2003-09-27 21:33:13 +00:00
uma_dbg.h
uma_int.h - Remove the working-set algorithm. Instead, use the per cpu buckets as the 2003-09-19 23:27:46 +00:00
uma.h - Fix the silly flag situation in UMA. Remove redundant ZFLAG/ZONE flags 2003-09-19 08:37:44 +00:00
vm_contig.c - Increase the object lock's scope in vm_contig_launder() so that access 2003-10-18 21:09:21 +00:00
vm_extern.h Revert previous commit. Come back vslock(), all is forgiven. 2003-10-05 12:41:08 +00:00
vm_fault.c NFC: Update stale comments. 2003-11-10 00:44:00 +00:00
vm_glue.c - The Open Group Base Specifications Issue 6 specifies that an munmap(2) 2003-11-10 01:37:40 +00:00
vm_init.c Change clean_map from a global to an auto variable 2003-09-01 16:46:47 +00:00
vm_kern.c NFC: Update stale comments. 2003-11-10 00:44:00 +00:00
vm_kern.h More pipe changes: 2003-08-11 05:51:51 +00:00
vm_map.c - Avoid a lock-order reversal between Giant and a system map mutex that 2003-11-19 18:48:45 +00:00
vm_map.h - Rename vm_map_clean() to vm_map_sync(). This better reflects the fact 2003-11-09 05:25:35 +00:00
vm_meter.c Use __FBSDID(). 2003-06-11 23:50:51 +00:00
vm_mmap.c Fix a deadlock between vm_fault() and vm_mmap(): The expected lock ordering 2003-12-06 05:45:32 +00:00
vm_object.c - Rename vm_map_clean() to vm_map_sync(). This better reflects the fact 2003-11-09 05:25:35 +00:00
vm_object.h - Rename vm_map_clean() to vm_map_sync(). This better reflects the fact 2003-11-09 05:25:35 +00:00
vm_page.c - Additional vm object locking in vm_object_split() 2003-11-01 04:54:23 +00:00
vm_page.h - Align a comment within struct vm_page. 2003-10-25 18:33:04 +00:00
vm_pageout.c - Push down Giant from vm_pageout() to vm_pageout_scan(), freeing 2003-10-24 06:43:04 +00:00
vm_pageout.h - Increase the object lock's scope in vm_contig_launder() so that access 2003-10-18 21:09:21 +00:00
vm_pageq.c Expand inline the relevant parts of src/COPYRIGHT for Matt Dillon's 2003-08-12 23:24:05 +00:00
vm_pager.c - Remove comments referring to functions that no longer exist. 2003-10-20 05:16:27 +00:00
vm_pager.h - Push down Giant from vm_pageout() to vm_pageout_scan(), freeing 2003-10-24 06:43:04 +00:00
vm_param.h Rev 1.16 renamed VM_METER to VM_TOTAL. This is breaking 3rd-party apps. 2003-01-18 21:14:02 +00:00
vm_unix.c Add the mlockall() and munlockall() system calls. 2003-08-11 07:14:08 +00:00
vm_zeroidle.c Expand inline the relevant parts of src/COPYRIGHT for Matt Dillon's 2003-08-12 23:24:05 +00:00
vm.h Change the way ELF coredumps are handled. Instead of unconditionally 2002-12-16 19:24:43 +00:00
vnode_pager.c In vnode_pager_input_smlfs(), call VOP_STRATEGY instead of VOP_SPECSTRATEGY 2003-11-15 09:54:11 +00:00
vnode_pager.h