aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/inode.c
diff options
context:
space:
mode:
authorYan <yanzheng@21cn.com>2007-09-17 11:13:12 -0400
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:03:56 -0400
commit8e1cd766643f040fd88b9c4221353a3f6b77db1e (patch)
tree837357a686763f6a3a3559b2320daf40836d46d3 /fs/btrfs/inode.c
parentbab9fb035faa5119991b64cfee1b14c1d6f6a31b (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.c3
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);