1. 06 Jan, 2012 4 commits
    • Alexandre Oliva's avatar
      Btrfs: test free space only for unclustered allocation · a5f6f719
      Alexandre Oliva authored
      Since the clustered allocation may be taking extents from a different
      block group, there's no point in spin-locking and testing the current
      block group free space before attempting to allocate space from a
      cluster, even more so when we might refrain from even trying the
      cluster in the current block group because, after the cluster was set
      up, not enough free space remained.  Furthermore, cluster creation
      attempts fail fast when the block group doesn't have enough free
      space, so the test was completely superfluous.
      
      I've move the free space test past the cluster allocation attempt,
      where it is more useful, and arranged for a cluster in the current
      block group to be released before trying an unclustered allocation,
      when we reach the LOOP_NO_EMPTY_SIZE stage, so that the free space in
      the cluster stands a chance of being combined with additional free
      space in the block group so as to succeed in the allocation attempt.
      Signed-off-by: default avatarAlexandre Oliva <oliva@lsd.ic.unicamp.br>
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      a5f6f719
    • Chris Mason's avatar
      Btrfs: use bigger metadata chunks on bigger filesystems · 1100373f
      Chris Mason authored
      The 256MB chunk is a little small on a huge FS.  This scales up the
      chunk size.
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      1100373f
    • Chris Mason's avatar
      Btrfs: lower the bar for chunk allocation · cf1d72c9
      Chris Mason authored
      The chunk allocation code has tried to keep a pretty tight lid on creating new
      metadata chunks.  This is partially because in the past the reservation
      code didn't give us an accurate idea of how much space was being used.
      
      The new code is much more accurate, so we're able to get rid of some of these
      checks.
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      cf1d72c9
    • Chris Mason's avatar
      Btrfs: run chunk allocations while we do delayed refs · 203bf287
      Chris Mason authored
      Btrfs tries to batch extent allocation tree changes to improve performance
      and reduce metadata trashing.  But it doesn't allocate new metadata chunks
      while it is doing allocations for the extent allocation tree.
      
      This commit changes the delayed refence code to do chunk allocations if we're
      getting low on room.  It prevents crashes and improves performance.
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      203bf287
  2. 23 Dec, 2011 3 commits
  3. 22 Dec, 2011 8 commits
  4. 21 Dec, 2011 10 commits
  5. 20 Dec, 2011 15 commits