summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2016-10-31 10:38:31 +0100
committerDavid Sterba <dsterba@suse.com>2016-11-09 13:47:28 +0100
commit1c85c3de5aab997ff66ea95cb0f2c9f79726ec40 (patch)
tree48089000f1128679f762ab9f5e9b9a5f91835718
parent49cb98e5d6989055860eee06879c10896489062f (diff)
btrfs-progs: use existing rootid resolving helper in btrfs_list_get_path_rootid
The utils helper is not verbose in case of an error, for now the helper used for subvolume listing will print the error message but not duplicate the ioctl anymore. Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--btrfs-list.c19
-rw-r--r--cmds-receive.c5
-rw-r--r--cmds-subvolume.c4
-rw-r--r--utils.c4
4 files changed, 9 insertions, 23 deletions
diff --git a/btrfs-list.c b/btrfs-list.c
index b5d4458b..831b13d3 100644
--- a/btrfs-list.c
+++ b/btrfs-list.c
@@ -1888,19 +1888,12 @@ int btrfs_list_parse_filter_string(char *opt_arg,
int btrfs_list_get_path_rootid(int fd, u64 *treeid)
{
- int ret;
- struct btrfs_ioctl_ino_lookup_args args;
-
- memset(&args, 0, sizeof(args));
- args.objectid = BTRFS_FIRST_FREE_OBJECTID;
+ int ret;
- ret = ioctl(fd, BTRFS_IOC_INO_LOOKUP, &args);
- if (ret < 0) {
- fprintf(stderr,
- "ERROR: can't perform the search - %s\n",
+ ret = lookup_path_rootid(fd, treeid);
+ if (ret < 0)
+ error("cannot resolve rootid for path: %s",
strerror(errno));
- return ret;
- }
- *treeid = args.treeid;
- return 0;
+
+ return ret;
}
diff --git a/cmds-receive.c b/cmds-receive.c
index d0525bfb..62a79850 100644
--- a/cmds-receive.c
+++ b/cmds-receive.c
@@ -1106,11 +1106,8 @@ static int do_receive(struct btrfs_receive *r, const char *tomnt,
* subvols we want to receive in.
*/
ret = btrfs_list_get_path_rootid(r->mnt_fd, &subvol_id);
- if (ret) {
- error("cannot resolve our subvolid: %d",
- ret);
+ if (ret)
goto out;
- }
root_subvol_path[0] = 0;
ret = btrfs_subvolid_resolve(r->mnt_fd, root_subvol_path,
diff --git a/cmds-subvolume.c b/cmds-subvolume.c
index bcfe5edc..3b5d6ea5 100644
--- a/cmds-subvolume.c
+++ b/cmds-subvolume.c
@@ -548,10 +548,8 @@ static int cmd_subvol_list(int argc, char **argv)
}
ret = btrfs_list_get_path_rootid(fd, &top_id);
- if (ret) {
- error("can't get rootid for '%s'", subvol);
+ if (ret)
goto out;
- }
if (is_list_all)
btrfs_list_setup_filter(&filter_set,
diff --git a/utils.c b/utils.c
index 3e1eb45f..e10d199f 100644
--- a/utils.c
+++ b/utils.c
@@ -4161,10 +4161,8 @@ int get_subvol_info(const char *fullpath, struct root_info *get_ri)
goto out;
ret = btrfs_list_get_path_rootid(fd, &sv_id);
- if (ret) {
- error("can't get rootid for '%s'", fullpath);
+ if (ret)
goto out;
- }
mntfd = btrfs_open_dir(mnt, &dirstream2, 1);
if (mntfd < 0)