OSDN Git Service

Btrfs: fix free space cache leak
authorChris Mason <chris.mason@oracle.com>
Mon, 18 Apr 2011 12:55:34 +0000 (08:55 -0400)
committerChris Mason <chris.mason@oracle.com>
Mon, 18 Apr 2011 12:55:34 +0000 (08:55 -0400)
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>
fs/btrfs/free-space-cache.c

index a3f420d..11d2e9c 100644 (file)
@@ -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);