Lines Matching refs:async_extent

349 struct async_extent {  struct
377 struct async_extent *async_extent; in add_async_extent() argument
379 async_extent = kmalloc(sizeof(*async_extent), GFP_NOFS); in add_async_extent()
380 BUG_ON(!async_extent); /* -ENOMEM */ in add_async_extent()
381 async_extent->start = start; in add_async_extent()
382 async_extent->ram_size = ram_size; in add_async_extent()
383 async_extent->compressed_size = compressed_size; in add_async_extent()
384 async_extent->pages = pages; in add_async_extent()
385 async_extent->nr_pages = nr_pages; in add_async_extent()
386 async_extent->compress_type = compress_type; in add_async_extent()
387 list_add_tail(&async_extent->list, &cow->extents); in add_async_extent()
685 static void free_async_extent_pages(struct async_extent *async_extent) in free_async_extent_pages() argument
689 if (!async_extent->pages) in free_async_extent_pages()
692 for (i = 0; i < async_extent->nr_pages; i++) { in free_async_extent_pages()
693 WARN_ON(async_extent->pages[i]->mapping); in free_async_extent_pages()
694 put_page(async_extent->pages[i]); in free_async_extent_pages()
696 kfree(async_extent->pages); in free_async_extent_pages()
697 async_extent->nr_pages = 0; in free_async_extent_pages()
698 async_extent->pages = NULL; in free_async_extent_pages()
711 struct async_extent *async_extent; in submit_compressed_extents() local
721 async_extent = list_entry(async_cow->extents.next, in submit_compressed_extents()
722 struct async_extent, list); in submit_compressed_extents()
723 list_del(&async_extent->list); in submit_compressed_extents()
729 if (!async_extent->pages) { in submit_compressed_extents()
733 lock_extent(io_tree, async_extent->start, in submit_compressed_extents()
734 async_extent->start + in submit_compressed_extents()
735 async_extent->ram_size - 1); in submit_compressed_extents()
739 async_extent->start, in submit_compressed_extents()
740 async_extent->start + in submit_compressed_extents()
741 async_extent->ram_size - 1, in submit_compressed_extents()
742 async_extent->start + in submit_compressed_extents()
743 async_extent->ram_size - 1, in submit_compressed_extents()
757 async_extent->start, in submit_compressed_extents()
758 async_extent->start + in submit_compressed_extents()
759 async_extent->ram_size - 1, in submit_compressed_extents()
763 kfree(async_extent); in submit_compressed_extents()
768 lock_extent(io_tree, async_extent->start, in submit_compressed_extents()
769 async_extent->start + async_extent->ram_size - 1); in submit_compressed_extents()
771 ret = btrfs_reserve_extent(root, async_extent->ram_size, in submit_compressed_extents()
772 async_extent->compressed_size, in submit_compressed_extents()
773 async_extent->compressed_size, in submit_compressed_extents()
776 free_async_extent_pages(async_extent); in submit_compressed_extents()
779 unlock_extent(io_tree, async_extent->start, in submit_compressed_extents()
780 async_extent->start + in submit_compressed_extents()
781 async_extent->ram_size - 1); in submit_compressed_extents()
790 async_extent->start, in submit_compressed_extents()
791 async_extent->start + in submit_compressed_extents()
792 async_extent->ram_size - 1); in submit_compressed_extents()
802 em = create_io_em(inode, async_extent->start, in submit_compressed_extents()
803 async_extent->ram_size, /* len */ in submit_compressed_extents()
804 async_extent->start, /* orig_start */ in submit_compressed_extents()
808 async_extent->ram_size, /* ram_bytes */ in submit_compressed_extents()
809 async_extent->compress_type, in submit_compressed_extents()
817 async_extent->start, in submit_compressed_extents()
819 async_extent->ram_size, in submit_compressed_extents()
822 async_extent->compress_type); in submit_compressed_extents()
825 async_extent->start, in submit_compressed_extents()
826 async_extent->start + in submit_compressed_extents()
827 async_extent->ram_size - 1, 0); in submit_compressed_extents()
835 extent_clear_unlock_delalloc(inode, async_extent->start, in submit_compressed_extents()
836 async_extent->start + in submit_compressed_extents()
837 async_extent->ram_size - 1, in submit_compressed_extents()
838 async_extent->start + in submit_compressed_extents()
839 async_extent->ram_size - 1, in submit_compressed_extents()
844 async_extent->start, in submit_compressed_extents()
845 async_extent->ram_size, in submit_compressed_extents()
847 ins.offset, async_extent->pages, in submit_compressed_extents()
848 async_extent->nr_pages, in submit_compressed_extents()
851 struct page *p = async_extent->pages[0]; in submit_compressed_extents()
852 const u64 start = async_extent->start; in submit_compressed_extents()
853 const u64 end = start + async_extent->ram_size - 1; in submit_compressed_extents()
863 free_async_extent_pages(async_extent); in submit_compressed_extents()
866 kfree(async_extent); in submit_compressed_extents()
874 extent_clear_unlock_delalloc(inode, async_extent->start, in submit_compressed_extents()
875 async_extent->start + in submit_compressed_extents()
876 async_extent->ram_size - 1, in submit_compressed_extents()
877 async_extent->start + in submit_compressed_extents()
878 async_extent->ram_size - 1, in submit_compressed_extents()
885 free_async_extent_pages(async_extent); in submit_compressed_extents()
886 kfree(async_extent); in submit_compressed_extents()