Btrfs: reset cluster's max_size when creating bitmap
authorAlexandre Oliva <oliva@lsd.ic.unicamp.br>
Wed, 30 Nov 2011 18:43:00 +0000 (13:43 -0500)
committerChris Mason <chris.mason@oracle.com>
Wed, 30 Nov 2011 18:43:00 +0000 (13:43 -0500)
The field that indicates the size of the largest contiguous chunk of
free space in the cluster is not initialized when setting up bitmaps,
it's only increased when we find a larger contiguous chunk.  We end up
retaining a larger value than appropriate for highly-fragmented
clusters, which may cause pointless searches for large contiguous
groups, and even cause clusters that do not meet the density
requirements to be set up.

Signed-off-by: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/free-space-cache.c

index ff179b1e7423dab78113066d375b5b03bc2f50c0..ec23d43d0c357870a14bf6e79a0ce5baeb93a43d 100644 (file)
@@ -2320,6 +2320,7 @@ again:
 
        if (!found) {
                start = i;
+               cluster->max_size = 0;
                found = true;
        }