Re: [PATCH v4 0/4] btrfs: extended inode refs
From: David Sterba <hidden>
Date: 2012-09-27 08:26:02
On Tue, Sep 25, 2012 at 04:04:46PM -0400, Chris Mason wrote:
quoted hunk ↗ jump to hunk
@@ -889,16 +899,23 @@ static inline int __add_inode_ref(struct btrfs_trans_handle *trans, while (cur_offset < item_size) { extref = (struct btrfs_inode_extref *)base + cur_offset; - victim_name_len = btrfs_inode_extref_name_len(eb, extref); - victim_name = kmalloc(namelen, GFP_NOFS); - leaf = path->nodes[0]; - read_extent_buffer(eb, name, (unsigned long)&extref->name, namelen); + victim_name_len = btrfs_inode_extref_name_len(leaf, extref); + + if (btrfs_inode_extref_parent(leaf, extref) != parent_objectid) + goto next; + + victim_name = kmalloc(victim_name_len, GFP_NOFS);
unchecked kmalloc
+ read_extent_buffer(leaf, victim_name, (unsigned long)&extref->name, + victim_name_len); search_key.objectid = inode_objectid; search_key.type = BTRFS_INODE_EXTREF_KEY; search_key.offset = btrfs_extref_hash(parent_objectid,