summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMisono, Tomohiro <misono.tomohiro@jp.fujitsu.com>2017-09-27 11:01:43 +0900
committerDavid Sterba <dsterba@suse.com>2017-10-06 13:23:27 +0200
commit448763c64a68bef4b4ba0956c477db55b005862b (patch)
treeec8bde06227fcebd84af7e38ab4028fe25a464a8
parent75716f6a8fba11ba04aaca550bb3913a58ccb817 (diff)
btrfs-progs: move get_fsid() to utils.c
Make get_fsid() to a common functions. This will be used for 'subvol delete --commit-after'. Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com> Reviewed-by: Qu Wenruo <quwenruo.btrfs@gmx.com> Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--cmds-property.c30
-rw-r--r--utils.c30
-rw-r--r--utils.h1
3 files changed, 31 insertions, 30 deletions
diff --git a/cmds-property.c b/cmds-property.c
index 9ae12460..03bafa05 100644
--- a/cmds-property.c
+++ b/cmds-property.c
@@ -48,36 +48,6 @@ static int parse_prop(const char *arg, const struct prop_handler *props,
return -1;
}
-static int get_fsid(const char *path, u8 *fsid, int silent)
-{
- int ret;
- int fd;
- struct btrfs_ioctl_fs_info_args args;
-
- fd = open(path, O_RDONLY);
- if (fd < 0) {
- ret = -errno;
- if (!silent)
- error("failed to open %s: %s", path,
- strerror(-ret));
- goto out;
- }
-
- ret = ioctl(fd, BTRFS_IOC_FS_INFO, &args);
- if (ret < 0) {
- ret = -errno;
- goto out;
- }
-
- memcpy(fsid, args.fsid, BTRFS_FSID_SIZE);
- ret = 0;
-
-out:
- if (fd != -1)
- close(fd);
- return ret;
-}
-
static int check_btrfs_object(const char *object)
{
int ret;
diff --git a/utils.c b/utils.c
index 7a2710fe..39629a79 100644
--- a/utils.c
+++ b/utils.c
@@ -1758,6 +1758,36 @@ out:
return ret;
}
+int get_fsid(const char *path, u8 *fsid, int silent)
+{
+ int ret;
+ int fd;
+ struct btrfs_ioctl_fs_info_args args;
+
+ fd = open(path, O_RDONLY);
+ if (fd < 0) {
+ ret = -errno;
+ if (!silent)
+ error("failed to open %s: %s", path,
+ strerror(-ret));
+ goto out;
+ }
+
+ ret = ioctl(fd, BTRFS_IOC_FS_INFO, &args);
+ if (ret < 0) {
+ ret = -errno;
+ goto out;
+ }
+
+ memcpy(fsid, args.fsid, BTRFS_FSID_SIZE);
+ ret = 0;
+
+out:
+ if (fd != -1)
+ close(fd);
+ return ret;
+}
+
static int group_profile_devs_min(u64 flag)
{
switch (flag & BTRFS_BLOCK_GROUP_PROFILE_MASK) {
diff --git a/utils.h b/utils.h
index d28a05a6..b3aabe14 100644
--- a/utils.h
+++ b/utils.h
@@ -100,6 +100,7 @@ int open_file_or_dir3(const char *fname, DIR **dirstream, int open_flags);
void close_file_or_dir(int fd, DIR *dirstream);
int get_fs_info(const char *path, struct btrfs_ioctl_fs_info_args *fi_args,
struct btrfs_ioctl_dev_info_args **di_ret);
+int get_fsid(const char *path, u8 *fsid, int silent);
int get_label(const char *btrfs_dev, char *label);
int set_label(const char *btrfs_dev, const char *label);