btrfs-progs: fi: move dev_to_fsid to cmds-fi-usage for later use

Move dev_to_fsid() from cmds-filesystem.c to cmds-fi-usage.c in order to
call it from both "fi show" and "fi usage".

Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
master
Misono, Tomohiro 2017-10-23 13:44:01 +09:00 committed by David Sterba
parent 766e4ed597
commit 94afa11d83
3 changed files with 30 additions and 27 deletions

View File

@ -22,6 +22,7 @@
#include <errno.h>
#include <stdarg.h>
#include <getopt.h>
#include <fcntl.h>
#include "utils.h"
#include "kerncompat.h"
@ -29,6 +30,7 @@
#include "string-table.h"
#include "cmds-fi-usage.h"
#include "commands.h"
#include "disk-io.h"
#include "version.h"
#include "help.h"
@ -506,6 +508,33 @@ static int cmp_device_info(const void *a, const void *b)
((struct device_info *)b)->path);
}
int dev_to_fsid(const char *dev, __u8 *fsid)
{
struct btrfs_super_block *disk_super;
char buf[BTRFS_SUPER_INFO_SIZE];
int ret;
int fd;
fd = open(dev, O_RDONLY);
if (fd < 0) {
ret = -errno;
return ret;
}
disk_super = (struct btrfs_super_block *)buf;
ret = btrfs_read_dev_super(fd, disk_super,
BTRFS_SUPER_INFO_OFFSET, SBREAD_DEFAULT);
if (ret)
goto out;
memcpy(fsid, disk_super->fsid, BTRFS_FSID_SIZE);
ret = 0;
out:
close(fd);
return ret;
}
/*
* This function loads the device_info structure and put them in an array
*/

View File

@ -50,5 +50,6 @@ void print_device_chunks(struct device_info *devinfo,
struct chunk_info *chunks_info_ptr,
int chunks_info_count, unsigned unit_mode);
void print_device_sizes(struct device_info *devinfo, unsigned unit_mode);
int dev_to_fsid(const char *dev, __u8 *fsid);
#endif

View File

@ -431,33 +431,6 @@ out:
return !found;
}
static int dev_to_fsid(const char *dev, __u8 *fsid)
{
struct btrfs_super_block *disk_super;
char buf[BTRFS_SUPER_INFO_SIZE];
int ret;
int fd;
fd = open(dev, O_RDONLY);
if (fd < 0) {
ret = -errno;
return ret;
}
disk_super = (struct btrfs_super_block *)buf;
ret = btrfs_read_dev_super(fd, disk_super,
BTRFS_SUPER_INFO_OFFSET, SBREAD_DEFAULT);
if (ret)
goto out;
memcpy(fsid, disk_super->fsid, BTRFS_FSID_SIZE);
ret = 0;
out:
close(fd);
return ret;
}
static void free_fs_devices(struct btrfs_fs_devices *fs_devices)
{
struct btrfs_fs_devices *cur_seed, *next_seed;