]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
- It is impossible to run request_cleanup() while doing a copyonwrite.
authorjeff <jeff@FreeBSD.org>
Mon, 4 Jul 2011 20:53:55 +0000 (20:53 +0000)
committerjeff <jeff@FreeBSD.org>
Mon, 4 Jul 2011 20:53:55 +0000 (20:53 +0000)
commit07731ef1bcd080c0b2634077467885725ed08559
tree0b6d4b05e142c3941f11a033c1efad27648b6c2b
parent4fa1a63e5a6c86de49fffbcb5289ecba305c6608
 - It is impossible to run request_cleanup() while doing a copyonwrite.
   This will most likely cause new block allocations which can recurse
   into request cleanup.
 - While here optimize the ufs locking slightly.  We need only acquire and
   drop once.
 - process_removes() and process_truncates() also is only needed once.
 - Attempt to flush each item on the worklist once but do not loop forever
   if some can not be completed.

Discussed with: mckusick
sys/ufs/ffs/ffs_softdep.c