Btrfs: fix wrong check during log recovery
When we're evicting an inode during log recovery, we need to ensure that the inode is not in orphan state any more, which means inode's run_time flags has _no_ BTRFS_INODE_HAS_ORPHAN_ITEM. Thus, the BUG_ON was triggered because of a wrong check for the flags. Reviewed-by: David Sterba <dsterba@suse.cz> Signed-off-by: Liu Bo <liubo2009@cn.fujitsu.com> Signed-off-by: Josef Bacik <jbacik@fusionio.com>
This commit is contained in:
Родитель
d3a94048c9
Коммит
6bf02314d9
|
@ -3754,7 +3754,7 @@ void btrfs_evict_inode(struct inode *inode)
|
|||
btrfs_wait_ordered_range(inode, 0, (u64)-1);
|
||||
|
||||
if (root->fs_info->log_root_recovering) {
|
||||
BUG_ON(!test_bit(BTRFS_INODE_HAS_ORPHAN_ITEM,
|
||||
BUG_ON(test_bit(BTRFS_INODE_HAS_ORPHAN_ITEM,
|
||||
&BTRFS_I(inode)->runtime_flags));
|
||||
goto no_delete;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче