inode_ref_info() returns 1 when the element wasn''t found and < 0 on
error,
just like btrfs_search_slot(). In iref_to_path() it''s an error when the
inode ref can''t be found, thus we return ERR_PTR(ret) in that case. In
order
to avoid ERR_PTR(1), we now set ret to -ENOENT in that case.
Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
---
On 08.02.2012 10:18, Dan Carpenter wrote:> I looked at the code, but couldn''t tell if it was intentional or
not.
It wasn''t :-)
Thank you,
-Jan
---
fs/btrfs/backref.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
---
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index 633c701..98f6bf10 100644
--- a/fs/btrfs/backref.c
+++ b/fs/btrfs/backref.c
@@ -892,6 +892,8 @@ static char *iref_to_path(struct btrfs_root *fs_root, struct
btrfs_path *path,
if (eb != eb_in)
free_extent_buffer(eb);
ret = inode_ref_info(parent, 0, fs_root, path, &found_key);
+ if (ret > 0)
+ ret = -ENOENT;
if (ret)
break;
next_inum = found_key.offset;
--
1.7.3.4
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs"
in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html