On Thu, August 16, 2012 at 06:42 (+0200), Liu Bo wrote:
> We already have a helper, iterate_inodes_from_logical(), for logical resolve,
> so just use it.
>
> Signed-off-by: Liu Bo <bo.li.liu@xxxxxxxxxx>
> ---
> fs/btrfs/ioctl.c | 20 +++-----------------
> 1 files changed, 3 insertions(+), 17 deletions(-)
>
> diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
> index 405b279..f1ff21a 100644
> --- a/fs/btrfs/ioctl.c
> +++ b/fs/btrfs/ioctl.c
> @@ -3210,12 +3210,9 @@ static long btrfs_ioctl_logical_to_ino(struct btrfs_root *root,
> {
> int ret = 0;
> int size;
> - u64 extent_item_pos;
> - u64 flags = 0;
> struct btrfs_ioctl_logical_ino_args *loi;
> struct btrfs_data_container *inodes = NULL;
> struct btrfs_path *path = NULL;
> - struct btrfs_key key;
>
> if (!capable(CAP_SYS_ADMIN))
> return -EPERM;
> @@ -3241,20 +3238,9 @@ static long btrfs_ioctl_logical_to_ino(struct btrfs_root *root,
> goto out;
> }
>
> - ret = extent_from_logical(root->fs_info, loi->logical, path, &key,
> - &flags);
> - btrfs_release_path(path);
> -
> - if (flags & BTRFS_EXTENT_FLAG_TREE_BLOCK)
> - ret = -ENOENT;
> - if (ret < 0)
> - goto out;
> -
> - extent_item_pos = loi->logical - key.objectid;
> - ret = iterate_extent_inodes(root->fs_info, key.objectid,
> - extent_item_pos, 0, build_ino_list,
> - inodes);
> -
> + path->search_commit_root = 0;
I came across that search_commit_root as well when re-reading
iterate_inodes_from_logical. Wouldn't explicitly set the default value here,
though. We don't do it before each and every call to btrfs_search_slot, either.
> + ret = iterate_inodes_from_logical(loi->logical, root->fs_info, path,
> + build_ino_list, inodes);
To maintain the current behavior, we should patch -EINVAL to -ENOENT here.
> if (ret < 0)
> goto out;
>
Thanks,
-Jan
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html