btrfs has it's own per-root inode list for snapshot uses, and it has a sanity check to make sure we're not overwriting a live inode when we add one to the root's xarray. Change this to check the refcount to validate it's not a live inode. Signed-off-by: Josef Bacik --- fs/btrfs/inode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index eb9496342346..69aab55648b9 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -3860,7 +3860,7 @@ static int btrfs_add_inode_to_root(struct btrfs_inode *inode, bool prealloc) ASSERT(ret != -ENOMEM); return ret; } else if (existing) { - WARN_ON(!(existing->vfs_inode.i_state & (I_WILL_FREE | I_FREEING))); + WARN_ON(!icount_read(&existing->vfs_inode)); } return 0; -- 2.49.0