struct v9fs_inode __maybe_unused *v9inode = V9FS_I(inode);
        __le32 __maybe_unused version;
 
-       truncate_inode_pages_final(&inode->i_data);
+       if (!is_bad_inode(inode)) {
+               truncate_inode_pages_final(&inode->i_data);
 
-       version = cpu_to_le32(v9inode->qid.version);
-       netfs_clear_inode_writeback(inode, &version);
+               version = cpu_to_le32(v9inode->qid.version);
+               netfs_clear_inode_writeback(inode, &version);
 
-       clear_inode(inode);
-       filemap_fdatawrite(&inode->i_data);
+               clear_inode(inode);
+               filemap_fdatawrite(&inode->i_data);
 
 #ifdef CONFIG_9P_FSCACHE
-       fscache_relinquish_cookie(v9fs_inode_cookie(v9inode), false);
+               if (v9fs_inode_cookie(v9inode))
+                       fscache_relinquish_cookie(v9fs_inode_cookie(v9inode), false);
 #endif
+       } else
+               clear_inode(inode);
 }
 
 struct inode *v9fs_fid_iget(struct super_block *sb, struct p9_fid *fid)