Lines Matching refs:async_extent

696 struct async_extent {
730 struct async_extent *async_extent;
732 async_extent = kmalloc(sizeof(*async_extent), GFP_NOFS);
733 BUG_ON(!async_extent); /* -ENOMEM */
734 async_extent->start = start;
735 async_extent->ram_size = ram_size;
736 async_extent->compressed_size = compressed_size;
737 async_extent->pages = pages;
738 async_extent->nr_pages = nr_pages;
739 async_extent->compress_type = compress_type;
740 list_add_tail(&async_extent->list, &cow->extents);
1045 static void free_async_extent_pages(struct async_extent *async_extent)
1049 if (!async_extent->pages)
1052 for (i = 0; i < async_extent->nr_pages; i++) {
1053 WARN_ON(async_extent->pages[i]->mapping);
1054 put_page(async_extent->pages[i]);
1056 kfree(async_extent->pages);
1057 async_extent->nr_pages = 0;
1058 async_extent->pages = NULL;
1062 struct async_extent *async_extent,
1065 u64 start = async_extent->start;
1066 u64 end = async_extent->start + async_extent->ram_size - 1;
1095 struct async_extent *async_extent,
1107 u64 start = async_extent->start;
1108 u64 end = async_extent->start + async_extent->ram_size - 1;
1114 * If async_chunk->locked_page is in the async_extent range, we need to
1126 if (async_extent->compress_type == BTRFS_COMPRESS_NONE) {
1127 submit_uncompressed_range(inode, async_extent, locked_page);
1131 ret = btrfs_reserve_extent(root, async_extent->ram_size,
1132 async_extent->compressed_size,
1133 async_extent->compressed_size,
1148 async_extent->ram_size, /* len */
1153 async_extent->ram_size, /* ram_bytes */
1154 async_extent->compress_type,
1163 async_extent->ram_size, /* num_bytes */
1164 async_extent->ram_size, /* ram_bytes */
1169 async_extent->compress_type);
1182 async_extent->pages, /* compressed_pages */
1183 async_extent->nr_pages,
1189 kfree(async_extent);
1203 free_async_extent_pages(async_extent);
1209 async_extent->ram_size, ret);
1210 kfree(async_extent);
1574 struct async_extent *async_extent;
1582 async_extent = list_entry(async_chunk->extents.next,
1583 struct async_extent, list);
1584 list_del(&async_extent->list);
1585 submit_one_async_extent(async_chunk, async_extent, &alloc_hint);