diff options
author | Anand Jain <anand.jain@oracle.com> | 2013-07-15 13:30:54 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2013-08-09 14:32:37 +0200 |
commit | b3a9a3c94ad254df681d06b0a2be2e41362cce49 (patch) | |
tree | 1ca7c90dcd5cdbe1457ee89a574713f0471ebf14 | |
parent | b8e23d4fb268152447761a9855d0afc75065215f (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.c | 18 | ||||
-rw-r--r-- | utils.h | 1 |
2 files changed, 14 insertions, 5 deletions
@@ -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) @@ -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 |