spin_unlock_irq(&subpage->lock);
 }
 
+static int btrfs_launder_folio(struct folio *folio)
+{
+       return btrfs_qgroup_free_data(folio_to_inode(folio), NULL, folio_pos(folio),
+                                     PAGE_SIZE, NULL);
+}
+
 static bool __btrfs_release_folio(struct folio *folio, gfp_t gfp_flags)
 {
        if (try_release_extent_mapping(&folio->page, gfp_flags)) {
        .writepages     = btrfs_writepages,
        .readahead      = btrfs_readahead,
        .invalidate_folio = btrfs_invalidate_folio,
+       .launder_folio  = btrfs_launder_folio,
        .release_folio  = btrfs_release_folio,
        .migrate_folio  = btrfs_migrate_folio,
        .dirty_folio    = filemap_dirty_folio,