1. 10 Feb, 2007 2 commits
    • David Chinner's avatar
      [XFS] Fix a synchronous buftarg flush deadlock when freezing. · 585e6d88
      David Chinner authored
      At the last stage of a freeze, we flush the buftarg synchronously over and
      over again until it succeeds twice without skipping any buffers.
      
      The delwri list flush skips pinned buffers, but tries to flush all others.
      It removes the buffers from the delwri list, then tries to lock them one
      at a time as it traverses the list to issue the I/O. It holds them locked
      until we issue all of the I/O and then unlocks them once we've waited for
      it to complete.
      
      The problem is that during a freeze, the filesystem may still be doing
      stuff - like flushing delalloc data buffers - in the background and hence
      we can be trying to lock buffers that were on the delwri list at the same
      time. Hence we can get ABBA deadlocks between threads doing allocation and
      the buftarg flush (freeze) thread.
      
      Fix it by skipping locked (and pinned) buffers as we traverse the delwri
      buffer list.
      
      SGI-PV: 957195
      SGI-Modid: xfs-linux-melb:xfs-kern:27535a
      Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
      Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
      585e6d88
    • David Chinner's avatar
      [XFS] Make quiet mounts quiet · dac61f52
      David Chinner authored
      The XFS quiet mount logic was inverted making quiet mounts noisy and vice
      versa. Fix it.
      
      SGI-PV: 958469
      SGI-Modid: xfs-linux-melb:xfs-kern:27520a
      Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
      Signed-off-by: default avatarEric Sandeen <sandeen@sandeen.net>
      Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
      dac61f52
  2. 09 Feb, 2007 38 commits