OSDN Git Service

Btrfs: fix to search one more bitmap for cluster setup
authorLi Zefan <lizf@cn.fujitsu.com>
Sun, 20 Nov 2011 12:33:38 +0000 (07:33 -0500)
committerChris Mason <chris.mason@oracle.com>
Sun, 20 Nov 2011 12:42:14 +0000 (07:42 -0500)
commit0f0fbf1d0e188d129756e9508090af4bdbfde00b
tree1c015e7be1e1ede9b2b654cb6264217fc110e598
parent32240a913d9f3a5aad42175d7696590ea1bfdb08
Btrfs: fix to search one more bitmap for cluster setup

Suppose there are two bitmaps [0, 256], [256, 512] and one extent
[100, 120] in the free space cache, and we want to setup a cluster
with offset=100, bytes=50.

In this case, there will be only one bitmap [256, 512] in the temporary
bitmaps list, and then setup_cluster_bitmap() won't search bitmap [0, 256].

The cause is, the list is constructed in setup_cluster_no_bitmap(),
and only bitmaps with bitmap_entry->offset >= offset will be added
into the list, and the very bitmap that convers offset has
bitmap_entry->offset <= offset.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/free-space-cache.c