OSDN Git Service

Btrfs: fix an oops when we fail to relocate tree blocks
authorWang Shilong <wangsl.fnst@cn.fujitsu.com>
Sat, 28 Dec 2013 11:52:39 +0000 (19:52 +0800)
committerChris Mason <clm@fb.com>
Tue, 28 Jan 2014 21:20:14 +0000 (13:20 -0800)
commit1708cc5723cb775703b42a0ce8e521019c42dd67
tree2e9dfec779989b80010af96287d5d8babbe46796
parente77751aad1facc4973613a11e2ad98ee4bbb04e1
Btrfs: fix an oops when we fail to relocate tree blocks

During balance test, we hit an oops:
[ 2013.841551] kernel BUG at fs/btrfs/relocation.c:1174!

The problem is that if we fail to relocate tree blocks, we should
update backref cache, otherwise, some pending nodes are not updated
while snapshot check @cache->last_trans is within one transaction
and won't update it and then oops happen.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/relocation.c