summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnand Jain <anand.jain@oracle.com>2013-07-15 13:30:54 +0800
committerDavid Sterba <dsterba@suse.cz>2013-08-09 14:32:37 +0200
commitb3a9a3c94ad254df681d06b0a2be2e41362cce49 (patch)
tree1ca7c90dcd5cdbe1457ee89a574713f0471ebf14
parentb8e23d4fb268152447761a9855d0afc75065215f (diff)
btrfs-progs: get_label_mounted to return label instead of print
This would help to reuse the function Signed-off-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
-rw-r--r--utils.c18
-rw-r--r--utils.h1
2 files changed, 14 insertions, 5 deletions
diff --git a/utils.c b/utils.c
index 29252dfc..46f502d6 100644
--- a/utils.c
+++ b/utils.c
@@ -1330,7 +1330,7 @@ static int get_label_unmounted(const char *dev)
* mounted path rather than device. Return the corresponding error
* the user specified the device path.
*/
-static int get_label_mounted(const char *mount_path)
+int get_label_mounted(const char *mount_path, char *labelp)
{
char label[BTRFS_LABEL_SIZE];
int fd;
@@ -1348,16 +1348,24 @@ static int get_label_mounted(const char *mount_path)
return -1;
}
- fprintf(stdout, "%s\n", label);
+ strncpy(labelp, label, sizeof(label));
close(fd);
return 0;
}
int get_label(const char *btrfs_dev)
{
- return is_existing_blk_or_reg_file(btrfs_dev) ?
- get_label_unmounted(btrfs_dev) :
- get_label_mounted(btrfs_dev);
+ int ret;
+ char label[BTRFS_LABEL_SIZE];
+
+ if (is_existing_blk_or_reg_file(btrfs_dev))
+ ret = get_label_unmounted(btrfs_dev);
+ else {
+ ret = get_label_mounted(btrfs_dev, label);
+ if (!ret)
+ fprintf(stdout, "%s\n", label);
+ }
+ return ret;
}
int set_label(const char *btrfs_dev, const char *label)
diff --git a/utils.h b/utils.h
index 79390cfb..13c95445 100644
--- a/utils.h
+++ b/utils.h
@@ -78,4 +78,5 @@ u64 btrfs_device_size(int fd, struct stat *st);
#define strncpy_null(dest, src) __strncpy__null(dest, src, sizeof(dest))
int test_dev_for_mkfs(char *file, int force_overwrite, char *estr);
int scan_for_btrfs(int where, int update_kernel);
+int get_label_mounted(const char *mount_path, char *labelp);
#endif