1. 10 Feb, 2007 6 commits
    • Eric Sandeen's avatar
      [XFS] Get rid of old 5.3/6.1 v1 log items. Cleanup patch sent in by Eric · 804195b6
      Eric Sandeen authored
      Sandeen.
      
      SGI-PV: 958736
      SGI-Modid: xfs-linux-melb:xfs-kern:27596a
      Signed-off-by: default avatarEric Sandeen <sandeen@sandeen.net>
      Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
      804195b6
    • David Chinner's avatar
      [XFS] Keep stack usage down for 4k stacks by using noinline. · 7989cb8e
      David Chinner authored
      gcc-4.1 and more recent aggressively inline static functions which
      increases XFS stack usage by ~15% in critical paths. Prevent this from
      occurring by adding noinline to the STATIC definition.
      
      Also uninline some functions that are too large to be inlined and were
      causing problems with CONFIG_FORCED_INLINING=y.
      
      Finally, clean up all the different users of inline, __inline and
      __inline__ and put them under one STATIC_INLINE macro. For debug kernels
      the STATIC_INLINE macro uninlines those functions.
      
      SGI-PV: 957159
      SGI-Modid: xfs-linux-melb:xfs-kern:27585a
      Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
      Signed-off-by: default avatarDavid Chatterton <chatz@sgi.com>
      Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
      7989cb8e
    • David Chinner's avatar
      [XFS] Current usage of buftarg flags is incorrect. · 5e6a07df
      David Chinner authored
      The {test,set,clear}_bit() operations take a bit index for the bit to
      operate on. The XBT_* flags are defined as bit fields which is incorrect,
      not to mention the way the bit fields are enumerated is broken too. This
      was only working by chance.
      
      Fix the definitions of the flags and make the code using them use the
      {test,set,clear}_bit() operations correctly.
      
      SGI-PV: 958639
      SGI-Modid: xfs-linux-melb:xfs-kern:27565a
      Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
      Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
      5e6a07df
    • Lachlan McIlroy's avatar
      [XFS] Prevent buffer overrun in cmn_err(). · dc74eaad
      Lachlan McIlroy authored
      The message buffer used by cmn_err() is only 256 bytes and some CXFS
      messages were exceeding this length. Since we were using vsprintf() and
      not checking for buffer overruns we were clobbering memory beyond the
      buffer. The size of the buffer has been increased to 1024 bytes so we can
      capture these larger messages and we are now using vsnprintf() to prevent
      overrunning the buffer size.
      
      SGI-PV: 958599
      SGI-Modid: xfs-linux-melb:xfs-kern:27561a
      Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: default avatarGeoffrey Wehrman <gwehrman@sgi.com>
      Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
      dc74eaad
    • 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 34 commits