From: Omar Sandoval <osan...@fb.com>

Signed-off-by: Omar Sandoval <osan...@fb.com>
---
 cmds-subvolume.c | 43 ++++++++-----------------------------------
 1 file changed, 8 insertions(+), 35 deletions(-)

diff --git a/cmds-subvolume.c b/cmds-subvolume.c
index 6006a278..700e822c 100644
--- a/cmds-subvolume.c
+++ b/cmds-subvolume.c
@@ -851,11 +851,9 @@ static const char * const cmd_subvol_set_default_usage[] = 
{
 
 static int cmd_subvol_set_default(int argc, char **argv)
 {
-       int     ret=0, fd;
-       u64     objectid;
-       char    *path;
-       char    *subvolid;
-       DIR     *dirstream = NULL;
+       u64 objectid;
+       char *path;
+       enum btrfs_util_error err;
 
        clean_args_no_options(argc, argv, cmd_subvol_set_default_usage);
 
@@ -865,42 +863,17 @@ static int cmd_subvol_set_default(int argc, char **argv)
 
        if (argc - optind == 1) {
                /* path to the subvolume is specified */
+               objectid = 0;
                path = argv[optind];
-
-               ret = test_issubvolume(path);
-               if (ret < 0) {
-                       error("stat error: %s", strerror(-ret));
-                       return 1;
-               } else if (!ret) {
-                       error("'%s' is not a subvolume", path);
-                       return 1;
-               }
-
-               fd = btrfs_open_dir(path, &dirstream, 1);
-               if (fd < 0)
-                       return 1;
-
-               ret = lookup_path_rootid(fd, &objectid);
-               if (ret) {
-                       error("unable to get subvol id: %s", strerror(-ret));
-                       close_file_or_dir(fd, dirstream);
-                       return 1;
-               }
        } else {
                /* subvol id and path to the filesystem are specified */
-               subvolid = argv[optind];
+               objectid = arg_strtou64(argv[optind]);
                path = argv[optind + 1];
-               objectid = arg_strtou64(subvolid);
-
-               fd = btrfs_open_dir(path, &dirstream, 1);
-               if (fd < 0)
-                       return 1;
        }
 
-       ret = ioctl(fd, BTRFS_IOC_DEFAULT_SUBVOL, &objectid);
-       close_file_or_dir(fd, dirstream);
-       if (ret < 0) {
-               error("unable to set a new default subvolume: %m");
+       err = btrfs_util_set_default_subvolume(path, objectid);
+       if (err) {
+               error_btrfs_util(err);
                return 1;
        }
        return 0;
-- 
2.16.1

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to