Btrfs: fix the inode ref searches done by btrfs_search_path_in_tree
authorChris Mason <chris.mason@oracle.com>
Thu, 18 Mar 2010 16:23:10 +0000 (12:23 -0400)
committerChris Mason <chris.mason@oracle.com>
Thu, 18 Mar 2010 16:23:10 +0000 (12:23 -0400)
commit8ad6fcab564c5bc956bdc3dfa440ab152b6e780f
tree38670d63e5315650f3e6efe2a2a8025e945b4743
parent1b53ac4d1b75b23bdc2b54ace787b8f718a987ef
Btrfs: fix the inode ref searches done by btrfs_search_path_in_tree

This is used by the inode lookup ioctl to follow all the backrefs up
to the subvol root.  But the search being done would sometimes land one
past the last item in the leaf instead of finding the backref.

This changes the search to look for the highest possible backref and hop
back one item.  It also fixes a leaked path on failure to find the root.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/ioctl.c