Hi, Chris and Oliva On thu, 1 Dec 2011 10:39:55 -0500, Chris Mason wrote: > git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus > > Has our current set of fixes. This is fairly small, Alexandre Oliva has > been chasing problems in our block allocator and kicked out important > fixes. > > Jan Schmidt fixed a merge error in the raid repair code, we're now > properly repairing failed blocks (io errors or crc errors) without > having to run a scrub. > > Alexandre Oliva (5) commits (+8/-8): > Btrfs: skip block groups without enough space for a cluster (+1/-1)
This patch introduce a bug that we can not allocate blocks from the cluster with enough space and it may make the block allocation fail. This is because the check that the above patch introduced make the allocator skip the cluster allocation, and jump to the uncluster allocation without reclaiming all the blocks in the cluster, At this time, if all the free space is in the cluster, and no space in the block group, the allocation will fail. (we can trigger this bug on SSD.) Fortunately, the following patch written by Oliva can fix this bug. [PATCH 08/20] Btrfs: try to allocate from cluster even at LOOP_NO_EMPTY_SIZE Thanks Miao > Btrfs: start search for new cluster at the beginning (+2/-4) > Btrfs: reset cluster's max_size when creating bitmap (+1/-0) > Btrfs: skip allocation attempt from empty cluster (+3/-3) > Btrfs: initialize new bitmaps' list (+1/-0) > > Li Zefan (1) commits (+3/-3): > Btrfs: fix oops when calling statfs on readonly device > > Arnd Hannemann (1) commits (+2/-2): > Fix URL of btrfs-progs git repository in docs > > Jan Schmidt (1) commits (+20/-7): > Btrfs: fix meta data raid-repair merge problem > > Dan Carpenter (1) commits (+5/-0): > btrfs scrub: handle -ENOMEM from init_ipath() > > Mike Fleetwood (1) commits (+1/-1): > Btrfs: Don't error on resizing FS to same size > > Miao Xie (1) commits (+22/-5): > Btrfs: fix deadlock on metadata reservation when evicting a inode > > Total: (11) commits (+60/-25) > > Documentation/filesystems/btrfs.txt | 4 ++-- > fs/btrfs/ctree.h | 3 +++ > fs/btrfs/extent-tree.c | 34 +++++++++++++++++++++++----------- > fs/btrfs/extent_io.c | 27 ++++++++++++++++++++------- > fs/btrfs/free-space-cache.c | 2 ++ > fs/btrfs/inode.c | 2 +- > fs/btrfs/ioctl.c | 2 +- > fs/btrfs/scrub.c | 5 +++++ > fs/btrfs/super.c | 6 +++--- > 9 files changed, 60 insertions(+), 25 deletions(-) > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html