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;
}
* 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,
}
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,
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)