cvs commit: src/sys/vm vm_mmap.c

Alan Cox alc at FreeBSD.org
Fri Dec 5 21:45:33 PST 2003


alc         2003/12/05 21:45:32 PST

  FreeBSD src repository

  Modified files:
    sys/vm               vm_mmap.c 
  Log:
  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
  
  Revision  Changes    Path
  1.174     +13 -4     src/sys/vm/vm_mmap.c


More information about the cvs-src mailing list