summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2011-04-18 14:55:34 +0200
committerChris Mason <chris.mason@oracle.com>2011-04-18 14:55:34 +0200
commitf65647c29b14f5a32ff6f3237b0ef3b375ed5a79 (patch)
tree4ec6b2a20d37f5ce4098cf77f3eb9606e3f241ba
parentBtrfs: avoid taking the chunk_mutex in do_chunk_alloc (diff)
downloadlinux-f65647c29b14f5a32ff6f3237b0ef3b375ed5a79.tar.xz
linux-f65647c29b14f5a32ff6f3237b0ef3b375ed5a79.zip
Btrfs: fix free space cache leak
The free space caching code was recently reworked to cache all the pages it needed instead of using find_get_page everywhere. One loop was missed though, so it ended up leaking pages. This fixes it to use our page array instead of find_get_page. Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--fs/btrfs/free-space-cache.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index a3f420def0e9..11d2e9cea09e 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -732,7 +732,7 @@ int btrfs_write_out_cache(struct btrfs_root *root,
out_of_space = true;
break;
}
- page = find_get_page(inode->i_mapping, index);
+ page = pages[index];
addr = kmap(page);
memcpy(addr, entry->bitmap, PAGE_CACHE_SIZE);