Date: Sun, 9 Oct 2005 20:00:17 +0000 (UTC) From: Tor Egge <tegge@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/ufs/ffs ffs_snapshot.c Message-ID: <200510092000.j99K0HVK026811@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
tegge 2005-10-09 20:00:17 UTC FreeBSD src repository Modified files: sys/ufs/ffs ffs_snapshot.c Log: Eliminate a deadlock that can occur during the cgaccount() processing due to the cg map buffer being held when writing indirect blocks. The process ends up in ffs_copyonwrite(), attempting to get snaplk while holding the cg map buffer lock. Another process might be in ffs_copyonwrite(), trying to allocate a new block for a copy. It would hold snaplk while trying to get the cg map buffer lock. Release the cg map buffer early and use the copy for most of the cgaccount processing to avoid this deadlock. Revision Changes Path 1.108 +2 -3 src/sys/ufs/ffs/ffs_snapshot.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200510092000.j99K0HVK026811>