search for: btrfs_release_extent_buffer

Displaying 2 results from an estimated 2 matches for "btrfs_release_extent_buffer".

2010 Jul 13
0
[PATCH 1/2] btrfs: restructure try_release_extent_buffer()
...fs/extent_io.c index 41277d6..70b7cc5 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -3097,6 +3097,39 @@ static void __free_extent_buffer(struct extent_buffer *eb) kmem_cache_free(extent_buffer_cache, eb); } +/* + * Helper for releasing extent buffer page. + */ +static void btrfs_release_extent_buffer_page(struct extent_buffer *eb, + unsigned long start_idx) +{ + unsigned long index; + struct page *page; + + if (!eb->first_page) + return; + + index = num_extent_pages(eb->start, eb->len); + if (start_idx >= index) + return; + + do { + index--; + page = extent_buffer_page(eb,...
2012 Dec 18
0
[PATCH] [RFC] Btrfs: Subpagesize blocksize (WIP).
...ee_ebs: + /* Free each extent buffer. */ + // TODO: Implement. + pr_crit(KERN_CRIT "HACK: Need to implement this...\n"); + WARN_ON(1); + return NULL; +} + struct extent_buffer *btrfs_clone_extent_buffer(struct extent_buffer *src) { unsigned long i; @@ -4170,12 +4334,121 @@ static void btrfs_release_extent_buffer_page(struct extent_buffer *eb, } /* + * Frees the page if all extent buffers belonging to the page are not + * referernced. The extent buffers themselves must be free afterwards, too... + * ret: 0 if the page did not need to be freed; 1 if the page was freed. + */ +static int btrfs_release_exte...