diff options
author | Yan <yanzheng@21cn.com> | 2007-09-17 11:13:12 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:03:56 -0400 |
commit | 8e1cd766643f040fd88b9c4221353a3f6b77db1e (patch) | |
tree | 837357a686763f6a3a3559b2320daf40836d46d3 /fs/btrfs/inode.c | |
parent | bab9fb035faa5119991b64cfee1b14c1d6f6a31b (diff) |
Btrfs: Fix double free and off by one in inode.c
The first change removes potential double free, the second fix a off
by one error.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r-- | fs/btrfs/inode.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 43bf4337859c..88b3ef20be69 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -206,7 +206,6 @@ void btrfs_read_locked_inode(struct inode *inode) | |||
206 | memcpy(&location, &BTRFS_I(inode)->location, sizeof(location)); | 206 | memcpy(&location, &BTRFS_I(inode)->location, sizeof(location)); |
207 | ret = btrfs_lookup_inode(NULL, root, path, &location, 0); | 207 | ret = btrfs_lookup_inode(NULL, root, path, &location, 0); |
208 | if (ret) { | 208 | if (ret) { |
209 | btrfs_free_path(path); | ||
210 | goto make_bad; | 209 | goto make_bad; |
211 | } | 210 | } |
212 | inode_item = btrfs_item_ptr(btrfs_buffer_leaf(path->nodes[0]), | 211 | inode_item = btrfs_item_ptr(btrfs_buffer_leaf(path->nodes[0]), |
@@ -1536,7 +1535,7 @@ again: | |||
1536 | flush_dcache_page(result->b_page); | 1535 | flush_dcache_page(result->b_page); |
1537 | kunmap(page); | 1536 | kunmap(page); |
1538 | set_extent_uptodate(em_tree, extent_start, | 1537 | set_extent_uptodate(em_tree, extent_start, |
1539 | extent_end, GFP_NOFS); | 1538 | extent_end - 1, GFP_NOFS); |
1540 | goto insert; | 1539 | goto insert; |
1541 | } else { | 1540 | } else { |
1542 | printk("unkknown found_type %d\n", found_type); | 1541 | printk("unkknown found_type %d\n", found_type); |