Lines Matching refs:async_extent
730 struct async_extent { struct
764 struct async_extent *async_extent; in add_async_extent() local
766 async_extent = kmalloc(sizeof(*async_extent), GFP_NOFS); in add_async_extent()
767 if (!async_extent) in add_async_extent()
769 async_extent->start = start; in add_async_extent()
770 async_extent->ram_size = ram_size; in add_async_extent()
771 async_extent->compressed_size = compressed_size; in add_async_extent()
772 async_extent->folios = folios; in add_async_extent()
773 async_extent->nr_folios = nr_folios; in add_async_extent()
774 async_extent->compress_type = compress_type; in add_async_extent()
775 list_add_tail(&async_extent->list, &cow->extents); in add_async_extent()
1058 static void free_async_extent_pages(struct async_extent *async_extent) in free_async_extent_pages() argument
1062 if (!async_extent->folios) in free_async_extent_pages()
1065 for (i = 0; i < async_extent->nr_folios; i++) { in free_async_extent_pages()
1066 WARN_ON(async_extent->folios[i]->mapping); in free_async_extent_pages()
1067 btrfs_free_compr_folio(async_extent->folios[i]); in free_async_extent_pages()
1069 kfree(async_extent->folios); in free_async_extent_pages()
1070 async_extent->nr_folios = 0; in free_async_extent_pages()
1071 async_extent->folios = NULL; in free_async_extent_pages()
1075 struct async_extent *async_extent, in submit_uncompressed_range() argument
1078 u64 start = async_extent->start; in submit_uncompressed_range()
1079 u64 end = async_extent->start + async_extent->ram_size - 1; in submit_uncompressed_range()
1096 start, async_extent->ram_size); in submit_uncompressed_range()
1100 btrfs_ino(inode), start, async_extent->ram_size, ret); in submit_uncompressed_range()
1105 struct async_extent *async_extent, in submit_one_async_extent() argument
1119 u64 start = async_extent->start; in submit_one_async_extent()
1120 u64 end = async_extent->start + async_extent->ram_size - 1; in submit_one_async_extent()
1138 if (async_extent->compress_type == BTRFS_COMPRESS_NONE) { in submit_one_async_extent()
1139 submit_uncompressed_range(inode, async_extent, locked_folio); in submit_one_async_extent()
1143 ret = btrfs_reserve_extent(root, async_extent->ram_size, in submit_one_async_extent()
1144 async_extent->compressed_size, in submit_one_async_extent()
1145 async_extent->compressed_size, in submit_one_async_extent()
1154 submit_uncompressed_range(inode, async_extent, locked_folio); in submit_one_async_extent()
1163 file_extent.ram_bytes = async_extent->ram_size; in submit_one_async_extent()
1164 file_extent.num_bytes = async_extent->ram_size; in submit_one_async_extent()
1166 file_extent.compression = async_extent->compress_type; in submit_one_async_extent()
1189 async_extent->folios, /* compressed_folios */ in submit_one_async_extent()
1190 async_extent->nr_folios, in submit_one_async_extent()
1196 kfree(async_extent); in submit_one_async_extent()
1210 free_async_extent_pages(async_extent); in submit_one_async_extent()
1216 async_extent->ram_size, ret); in submit_one_async_extent()
1217 kfree(async_extent); in submit_one_async_extent()
1570 struct async_extent *async_extent; in submit_compressed_extents() local
1591 async_extent = list_entry(async_chunk->extents.next, in submit_compressed_extents()
1592 struct async_extent, list); in submit_compressed_extents()
1593 list_del(&async_extent->list); in submit_compressed_extents()
1594 submit_one_async_extent(async_chunk, async_extent, &alloc_hint); in submit_compressed_extents()