btrfs-progs: convert: show progress by default
[platform/upstream/btrfs-progs.git] / cmds-property.c
index 9c4eb92..6501338 100644 (file)
@@ -124,7 +124,18 @@ static int check_is_root(const char *object)
        int ret;
        u8 fsid[BTRFS_FSID_SIZE];
        u8 fsid2[BTRFS_FSID_SIZE];
-       char *tmp;
+       char *tmp = NULL;
+       char *rp;
+
+       rp = realpath(object, NULL);
+       if (!rp) {
+               ret = -errno;
+               goto out;
+       }
+       if (!strcmp(rp, "/")) {
+               ret = 0;
+               goto out;
+       }
 
        tmp = malloc(strlen(object) + 5);
        if (!tmp) {
@@ -165,6 +176,7 @@ static int check_is_root(const char *object)
 
 out:
        free(tmp);
+       free(rp);
        return ret;
 }
 
@@ -276,10 +288,6 @@ static int setget_prop(int types, const char *object,
                fprintf(stderr, "ERROR: property is unknown\n");
                ret = 40;
                goto out;
-       } else if (ret) {
-               fprintf(stderr, "ERROR: parse_prop reported unknown error\n");
-               ret = 42;
-               goto out;
        }
 
        types &= prop->types;
@@ -389,7 +397,7 @@ static void parse_args(int argc, char **argv,
 static int cmd_get(int argc, char **argv)
 {
        int ret;
-       char *object;
+       char *object = NULL;
        char *name = NULL;
        int types = 0;
 
@@ -413,9 +421,9 @@ static int cmd_get(int argc, char **argv)
 static int cmd_set(int argc, char **argv)
 {
        int ret;
-       char *object;
-       char *name;
-       char *value;
+       char *object = NULL;
+       char *name = NULL;
+       char *value = NULL;
        int types = 0;
 
        if (check_argc_min(argc, 4) || check_argc_max(argc, 6))