struct page **compressed_pages,
                                 unsigned int nr_pages,
                                 blk_opf_t write_flags,
-                                struct cgroup_subsys_state *blkcg_css,
                                 bool writeback)
 {
        struct btrfs_fs_info *fs_info = inode->root->fs_info;
        ASSERT(IS_ALIGNED(start, fs_info->sectorsize) &&
               IS_ALIGNED(len, fs_info->sectorsize));
 
-       if (blkcg_css) {
-               kthread_associate_blkcg(blkcg_css);
-               write_flags |= REQ_CGROUP_PUNT;
-       }
        write_flags |= REQ_BTRFS_ONE_ORDERED;
 
        cb = alloc_compressed_bio(inode, start, REQ_OP_WRITE | write_flags,
        btrfs_add_compressed_bio_pages(cb);
 
        btrfs_submit_bio(&cb->bbio, 0);
-
-       if (blkcg_css)
-               kthread_associate_blkcg(NULL);
 }
 
 /*
 
        extent_clear_unlock_delalloc(inode, start, end,
                        NULL, EXTENT_LOCKED | EXTENT_DELALLOC,
                        PAGE_UNLOCK | PAGE_START_WRITEBACK);
+
+       if (async_chunk->blkcg_css)
+               kthread_associate_blkcg(async_chunk->blkcg_css);
        btrfs_submit_compressed_write(inode, start,     /* file_offset */
                            async_extent->ram_size,     /* num_bytes */
                            ins.objectid,               /* disk_bytenr */
                            ins.offset,                 /* compressed_len */
                            async_extent->pages,        /* compressed_pages */
                            async_extent->nr_pages,
-                           async_chunk->write_flags,
-                           async_chunk->blkcg_css, true);
+                           async_chunk->write_flags, true);
+       if (async_chunk->blkcg_css)
+               kthread_associate_blkcg(NULL);
        *alloc_hint = ins.objectid + ins.offset;
        kfree(async_extent);
        return ret;
                if (blkcg_css != blkcg_root_css) {
                        css_get(blkcg_css);
                        async_chunk[i].blkcg_css = blkcg_css;
+                       async_chunk[i].write_flags |= REQ_CGROUP_PUNT;
                } else {
                        async_chunk[i].blkcg_css = NULL;
                }
        btrfs_delalloc_release_extents(inode, num_bytes);
 
        btrfs_submit_compressed_write(inode, start, num_bytes, ins.objectid,
-                                         ins.offset, pages, nr_pages, 0, NULL,
-                                         false);
+                                         ins.offset, pages, nr_pages, 0, false);
        ret = orig_count;
        goto out;