cvs commit: src/sys/ufs/ffs ffs_snapshot.c

Tor Egge tegge at FreeBSD.org
Sun Oct 9 13:00:18 PDT 2005


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


More information about the cvs-all mailing list