Skip site navigation (1)Skip section navigation (2)
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>