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;
|
||||
}
|
||||
|
||||
/* 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)
|
||||
{
|
||||
int ret = 0, fd;
|
||||
|
|
33
utils.c
33
utils.c
|
@ -854,6 +854,39 @@ int is_mount_point(const char *path)
|
|||
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.
|
||||
* 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);
|
||||
int is_block_device(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);
|
||||
u64 btrfs_device_size(int fd, struct stat *st);
|
||||
/* Helper to always get proper size of the destination string */
|
||||
|
|
Loading…
Reference in New Issue