Btrfs-progs: make get_subvol_name non cmds-send specific
authorAnand Jain <anand.jain@oracle.com>
Fri, 1 Feb 2013 07:56:27 +0000 (15:56 +0800)
committerDavid Sterba <dsterba@suse.cz>
Fri, 1 Feb 2013 15:55:05 +0000 (16:55 +0100)
get_subvol_name can be used other than the just with in cmds-send.c
so this patch will make it possible with out changing the original
intentions.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
cmds-send.c
commands.h

index 43355db..69e9bce 100644 (file)
@@ -334,12 +334,12 @@ out:
        return ret;
 }
 
-static const char *get_subvol_name(struct btrfs_send *s, const char *full_path)
+char *get_subvol_name(char *mnt, char *full_path)
 {
-       int len = strlen(s->root_path);
+       int len = strlen(mnt);
        if (!len)
                return full_path;
-       if (s->root_path[len - 1] != '/')
+       if (mnt[len - 1] != '/')
                len += 1;
 
        return full_path + len;
@@ -449,7 +449,7 @@ int cmd_send_start(int argc, char **argv)
                        if (ret < 0)
                                goto out;
 
-                       ret = get_root_id(&send, get_subvol_name(&send, subvol),
+                       ret = get_root_id(&send, get_subvol_name(send.root_path, subvol),
                                        &root_id);
                        if (ret < 0) {
                                fprintf(stderr, "ERROR: could not resolve "
@@ -526,7 +526,7 @@ int cmd_send_start(int argc, char **argv)
 
        if (snapshot_parent != NULL) {
                ret = get_root_id(&send,
-                               get_subvol_name(&send, snapshot_parent),
+                               get_subvol_name(send.root_path, snapshot_parent),
                                &parent_root_id);
                if (ret < 0) {
                        fprintf(stderr, "ERROR: could not resolve root_id "
@@ -585,7 +585,7 @@ int cmd_send_start(int argc, char **argv)
                        goto out;
                }
 
-               ret = get_root_id(&send, get_subvol_name(&send, subvol),
+               ret = get_root_id(&send, get_subvol_name(send.root_path, subvol),
                                &root_id);
                if (ret < 0) {
                        fprintf(stderr, "ERROR: could not resolve root_id "
index 1124f2e..33eb99a 100644 (file)
@@ -111,3 +111,4 @@ int test_issubvolume(char *path);
 
 /* send.c */
 int find_mount_root(const char *path, char **mount_root);
+char *get_subvol_name(char *mnt, char *full_path);