diff --git a/[refs] b/[refs] index 5c238c4b81ce..2140178d0727 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3b30c22f64a6bb297719c60e494af1d26563f584 +refs/heads/master: c604480171c510c1beeb81b82418e5bc4de8f1ae diff --git a/trunk/fs/btrfs/free-space-cache.c b/trunk/fs/btrfs/free-space-cache.c index 280165581c57..ac23476beb6e 100644 --- a/trunk/fs/btrfs/free-space-cache.c +++ b/trunk/fs/btrfs/free-space-cache.c @@ -645,7 +645,8 @@ int btrfs_find_space_cluster(struct btrfs_trans_handle *trans, * we haven't filled the empty size and the window is * very large. reset and try again */ - if (next->offset - window_start > (bytes + empty_size) * 2) { + if (next->offset - (last->offset + last->bytes) > 128 * 1024 || + next->offset - window_start > (bytes + empty_size) * 2) { entry = next; window_start = entry->offset; window_free = entry->bytes;