diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2012-03-27 17:09:18 +0300 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2012-03-27 17:09:18 +0300 |
commit | 5eb56d2520fe16f00756ccdf8eebc277398e0f44 (patch) | |
tree | ab141af79e01000ff04341502f1f42d9a1bef60a /fs/btrfs | |
parent | e4837f8f3b5d08b8c708533a71439bfb40ede467 (diff) | |
download | op-kernel-dev-5eb56d2520fe16f00756ccdf8eebc277398e0f44.zip op-kernel-dev-5eb56d2520fe16f00756ccdf8eebc277398e0f44.tar.gz |
Btrfs: fix memory leak in resolver code
init_ipath() allocates btrfs_data_container which is never freed. Free
it in free_ipath() and nuke the comment for init_data_container() - we
can safely free it with kfree().
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/backref.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index 0436c12..4c79547 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -1342,12 +1342,6 @@ int paths_from_inode(u64 inum, struct inode_fs_paths *ipath) inode_to_path, ipath); } -/* - * allocates space to return multiple file system paths for an inode. - * total_bytes to allocate are passed, note that space usable for actual path - * information will be total_bytes - sizeof(struct inode_fs_paths). - * the returned pointer must be freed with free_ipath() in the end. - */ struct btrfs_data_container *init_data_container(u32 total_bytes) { struct btrfs_data_container *data; @@ -1403,5 +1397,6 @@ struct inode_fs_paths *init_ipath(s32 total_bytes, struct btrfs_root *fs_root, void free_ipath(struct inode_fs_paths *ipath) { + kfree(ipath->fspath); kfree(ipath); } |