HAMMER VFS - Fix deadlock which can occur under severe filesystem pressure
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 4 Feb 2011 19:55:02 +0000 (11:55 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 4 Feb 2011 19:55:02 +0000 (11:55 -0800)
commit526fce4d2d2ce75e17fa89715624fe1e7349cc05
tree4f110efebf27bd6fe83fea0f13d8b442725480a6
parent50e32333fe157099d01bfabd2b7921fd1f1aaabf
HAMMER VFS - Fix deadlock which can occur under severe filesystem pressure

* Inode reflushes (a fsync occuring while the inode is still queued for
  a prior fsync) were not ensuring that the inode got pushed to the backend
  flusher.

  This could lead to deadlocks when the process trying to issue the flush
  is the syncer itself.

* The problem typically occured under filesystem loads where a large number
  of inodes (aka due to a bulk build) are being flushed at once, and the
  flush is unable to finish running before the next syncer cycle comes
  around.
sys/vfs/hammer/hammer_inode.c