Date: Fri, 5 Dec 2003 21:45:32 -0800 (PST) From: Alan Cox <alc@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/vm vm_mmap.c Message-ID: <200312060545.hB65jWx4095325@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200312060545.hB65jWx4095325>