mirror of
https://github.com/kdave/btrfs-progs
synced 2025-04-24 20:17:57 +00:00
btrfs-progs: move check_arg_type() to util.c
The check_arg_type() function does quite generic thing, move it to utils.c. Signed-off-by: Gui Hecheng <guihc.fnst@cn.fujitsu.com> Reviewed-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
parent
7d83db5bae
commit
280434ebde
@ -495,38 +495,6 @@ static int print_one_fs(struct btrfs_ioctl_fs_info_args *fs_info,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This function checks if the given input parameter is
|
|
||||||
* an uuid or a path
|
|
||||||
* return -1: some error in the given input
|
|
||||||
* return 0: unknow input
|
|
||||||
* return 1: given input is uuid
|
|
||||||
* return 2: given input is path
|
|
||||||
*/
|
|
||||||
static int check_arg_type(char *input)
|
|
||||||
{
|
|
||||||
uuid_t out;
|
|
||||||
char path[PATH_MAX];
|
|
||||||
|
|
||||||
if (!input)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
if (realpath(input, path)) {
|
|
||||||
if (is_block_device(path) == 1)
|
|
||||||
return BTRFS_ARG_BLKDEV;
|
|
||||||
|
|
||||||
if (is_mount_point(path) == 1)
|
|
||||||
return BTRFS_ARG_MNTPOINT;
|
|
||||||
|
|
||||||
return BTRFS_ARG_UNKNOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strlen(input) == (BTRFS_UUID_UNPARSED_SIZE - 1) &&
|
|
||||||
!uuid_parse(input, out))
|
|
||||||
return BTRFS_ARG_UUID;
|
|
||||||
|
|
||||||
return BTRFS_ARG_UNKNOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int btrfs_scan_kernel(void *search)
|
static int btrfs_scan_kernel(void *search)
|
||||||
{
|
{
|
||||||
int ret = 0, fd;
|
int ret = 0, fd;
|
||||||
|
33
utils.c
33
utils.c
@ -854,6 +854,39 @@ int is_mount_point(const char *path)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This function checks if the given input parameter is
|
||||||
|
* an uuid or a path
|
||||||
|
* return -1: some error in the given input
|
||||||
|
* return 0: unknow input
|
||||||
|
* return 1: given input is uuid
|
||||||
|
* return 2: given input is path
|
||||||
|
*/
|
||||||
|
int check_arg_type(const char *input)
|
||||||
|
{
|
||||||
|
uuid_t uuid;
|
||||||
|
char path[PATH_MAX];
|
||||||
|
|
||||||
|
if (!input)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
if (realpath(input, path)) {
|
||||||
|
if (is_block_device(path) == 1)
|
||||||
|
return BTRFS_ARG_BLKDEV;
|
||||||
|
|
||||||
|
if (is_mount_point(path) == 1)
|
||||||
|
return BTRFS_ARG_MNTPOINT;
|
||||||
|
|
||||||
|
return BTRFS_ARG_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strlen(input) == (BTRFS_UUID_UNPARSED_SIZE - 1) &&
|
||||||
|
!uuid_parse(input, uuid))
|
||||||
|
return BTRFS_ARG_UUID;
|
||||||
|
|
||||||
|
return BTRFS_ARG_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Find the mount point for a mounted device.
|
* Find the mount point for a mounted device.
|
||||||
* On success, returns 0 with mountpoint in *mp.
|
* On success, returns 0 with mountpoint in *mp.
|
||||||
|
1
utils.h
1
utils.h
@ -118,6 +118,7 @@ int set_label(const char *btrfs_dev, const char *label);
|
|||||||
char *__strncpy__null(char *dest, const char *src, size_t n);
|
char *__strncpy__null(char *dest, const char *src, size_t n);
|
||||||
int is_block_device(const char *file);
|
int is_block_device(const char *file);
|
||||||
int is_mount_point(const char *file);
|
int is_mount_point(const char *file);
|
||||||
|
int check_arg_type(const char *input);
|
||||||
int open_path_or_dev_mnt(const char *path, DIR **dirstream);
|
int open_path_or_dev_mnt(const char *path, DIR **dirstream);
|
||||||
u64 btrfs_device_size(int fd, struct stat *st);
|
u64 btrfs_device_size(int fd, struct stat *st);
|
||||||
/* Helper to always get proper size of the destination string */
|
/* Helper to always get proper size of the destination string */
|
||||||
|
Loading…
Reference in New Issue
Block a user