]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: try cluster but don't advance in search list
authorAlexandre Oliva <oliva@lsd.ic.unicamp.br>
Thu, 8 Dec 2011 01:08:40 +0000 (20:08 -0500)
committerChris Mason <chris.mason@oracle.com>
Thu, 8 Dec 2011 13:55:40 +0000 (08:55 -0500)
commit1c8893d8ee5fd56799f4d1ed3727a3cd2e43fd35
treec9a637653e547f24ed488d0d5956b314b4257597
parentbe235525716c43e7d5180595b76274a081e198b8
Btrfs: try cluster but don't advance in search list

When we find an existing cluster, we switch to its block group as the
current block group, possibly skipping multiple blocks in the process.
Furthermore, under heavy contention, multiple threads may fail to
allocate from a cluster and then release just-created clusters just to
proceed to create new ones in a different block group.

This patch tries to allocate from an existing cluster regardless of its
block group, and doesn't switch to that group, instead proceeding to
try to allocate a cluster from the group it was iterating before the
attempt.

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