We do not need the BUG_ON in our evict truncate code, and in the invalidate path we can simply check for the i_count == 0 to see if we're evicting the inode. Signed-off-by: Josef Bacik --- fs/btrfs/inode.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 69aab55648b9..ea6884e5c791 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -5338,7 +5338,6 @@ static void evict_inode_truncate_pages(struct inode *inode) struct extent_io_tree *io_tree = &BTRFS_I(inode)->io_tree; struct rb_node *node; - ASSERT(inode->i_state & I_FREEING); truncate_inode_pages_final(&inode->i_data); btrfs_drop_extent_map_range(BTRFS_I(inode), 0, (u64)-1, false); @@ -7448,7 +7447,7 @@ static void btrfs_invalidate_folio(struct folio *folio, size_t offset, u64 page_start = folio_pos(folio); u64 page_end = page_start + folio_size(folio) - 1; u64 cur; - int inode_evicting = inode->vfs_inode.i_state & I_FREEING; + int inode_evicting = icount_read(&inode->vfs_inode) == 0; /* * We have folio locked so no new ordered extent can be created on this -- 2.49.0