aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/extent_io.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/extent_io.c')
-rw-r--r--fs/btrfs/extent_io.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index ad0f0a95ad3a..9369289ce771 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -3266,8 +3266,7 @@ static inline void btrfs_release_extent_buffer(struct extent_buffer *eb)
3266 3266
3267struct extent_buffer *alloc_extent_buffer(struct extent_io_tree *tree, 3267struct extent_buffer *alloc_extent_buffer(struct extent_io_tree *tree,
3268 u64 start, unsigned long len, 3268 u64 start, unsigned long len,
3269 struct page *page0, 3269 struct page *page0)
3270 gfp_t mask)
3271{ 3270{
3272 unsigned long num_pages = num_extent_pages(start, len); 3271 unsigned long num_pages = num_extent_pages(start, len);
3273 unsigned long i; 3272 unsigned long i;
@@ -3288,7 +3287,7 @@ struct extent_buffer *alloc_extent_buffer(struct extent_io_tree *tree,
3288 } 3287 }
3289 rcu_read_unlock(); 3288 rcu_read_unlock();
3290 3289
3291 eb = __alloc_extent_buffer(tree, start, len, mask); 3290 eb = __alloc_extent_buffer(tree, start, len, GFP_NOFS);
3292 if (!eb) 3291 if (!eb)
3293 return NULL; 3292 return NULL;
3294 3293
@@ -3305,7 +3304,7 @@ struct extent_buffer *alloc_extent_buffer(struct extent_io_tree *tree,
3305 i = 0; 3304 i = 0;
3306 } 3305 }
3307 for (; i < num_pages; i++, index++) { 3306 for (; i < num_pages; i++, index++) {
3308 p = find_or_create_page(mapping, index, mask | __GFP_HIGHMEM); 3307 p = find_or_create_page(mapping, index, GFP_NOFS | __GFP_HIGHMEM);
3309 if (!p) { 3308 if (!p) {
3310 WARN_ON(1); 3309 WARN_ON(1);
3311 goto free_eb; 3310 goto free_eb;