diff options
author | Josef Bacik <jbacik@fusionio.com> | 2012-10-05 16:53:34 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@fusionio.com> | 2012-10-09 09:20:56 -0400 |
commit | f60b1b49f6f72abb8bedfd49b758773bbda043c8 (patch) | |
tree | 34e972598969d614eca15082588e8b9ee38d8471 /fs | |
parent | 4804b38293c020e7a2c841e86402f456c19d934d (diff) |
Btrfs: fix page leakage
Alloc_dummy_extent_buffer will not free the first page in the eb array if we
fail to allocate a page, fix this. Thanks,
Reported-by: David Sterba <dave@jikos.cz>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/extent_io.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 7dc69b38548d..64dc93f64bc0 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c | |||
@@ -4104,7 +4104,7 @@ struct extent_buffer *alloc_dummy_extent_buffer(u64 start, unsigned long len) | |||
4104 | 4104 | ||
4105 | return eb; | 4105 | return eb; |
4106 | err: | 4106 | err: |
4107 | for (i--; i > 0; i--) | 4107 | for (i--; i >= 0; i--) |
4108 | __free_page(eb->pages[i]); | 4108 | __free_page(eb->pages[i]); |
4109 | __free_extent_buffer(eb); | 4109 | __free_extent_buffer(eb); |
4110 | return NULL; | 4110 | return NULL; |