diff --git a/fs/ntfs3/inode.c b/fs/ntfs3/inode.c index dc7e7ab701c6..505b2c1eed50 100644 --- a/fs/ntfs3/inode.c +++ b/fs/ntfs3/inode.c @@ -1787,12 +1787,14 @@ int ntfs_unlink_inode(struct inode *dir, const struct dentry *dentry) void ntfs_evict_inode(struct inode *inode) { - truncate_inode_pages_final(&inode->i_data); + if (inode->i_nlink || unlikely(is_bad_inode(inode))) { + truncate_inode_pages_final(&inode->i_data); - invalidate_inode_buffers(inode); - clear_inode(inode); + invalidate_inode_buffers(inode); + clear_inode(inode); - ni_clear(ntfs_i(inode)); + ni_clear(ntfs_i(inode)); + } } /*