diff options
| author | 2012-09-07 20:01:29 -0600 | |
|---|---|---|
| committer | 2012-10-01 15:19:18 -0400 | |
| commit | df031f0752d50f2061df2847d57ea52a79f7977c (patch) | |
| tree | 85bf2ebee5a661cefb2752fa158b7e61571825b7 | |
| parent | Btrfs: fix a bug in parsing return value in logical resolve (diff) | |
| download | linux-dev-df031f0752d50f2061df2847d57ea52a79f7977c.tar.xz linux-dev-df031f0752d50f2061df2847d57ea52a79f7977c.zip | |
Btrfs: use helper for logical resolve
We already have a helper, iterate_inodes_from_logical(), for logical resolve,
so just use it.
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
| -rw-r--r-- | fs/btrfs/ioctl.c | 19 | 
1 files changed, 3 insertions, 16 deletions
| diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 48ff3f7317b0..fa1284d596ea 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,23 +3238,13 @@ 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 = iterate_inodes_from_logical(loi->logical, root->fs_info, path, +					  build_ino_list, inodes); +	if (ret == -EINVAL)  		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); - -	if (ret < 0) -		goto out; -  	ret = copy_to_user((void *)(unsigned long)loi->inodes,  			   (void *)(unsigned long)inodes, size);  	if (ret) | 
