mirror of
https://github.com/kdave/btrfs-progs
synced 2025-03-24 20:06:41 +00:00
btrfs-progs: Move parse_qgroupid() to utils.c
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> [constified strings in parse_qgroupid] Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
parent
8f3330b23b
commit
a3b048b306
28
qgroup.c
28
qgroup.c
@ -1249,34 +1249,6 @@ int btrfs_qgroup_parse_sort_string(char *opt_arg,
|
||||
return 0;
|
||||
}
|
||||
|
||||
u64 parse_qgroupid(char *p)
|
||||
{
|
||||
char *s = strchr(p, '/');
|
||||
char *ptr_src_end = p + strlen(p);
|
||||
char *ptr_parse_end = NULL;
|
||||
u64 level;
|
||||
u64 id;
|
||||
|
||||
if (!s) {
|
||||
id = strtoull(p, &ptr_parse_end, 10);
|
||||
if (ptr_parse_end != ptr_src_end)
|
||||
goto err;
|
||||
return id;
|
||||
}
|
||||
level = strtoull(p, &ptr_parse_end, 10);
|
||||
if (ptr_parse_end != s)
|
||||
goto err;
|
||||
|
||||
id = strtoull(s+1, &ptr_parse_end, 10);
|
||||
if (ptr_parse_end != ptr_src_end)
|
||||
goto err;
|
||||
|
||||
return (level << 48) | id;
|
||||
err:
|
||||
fprintf(stderr, "ERROR:invalid qgroupid\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
int qgroup_inherit_size(struct btrfs_qgroup_inherit *p)
|
||||
{
|
||||
return sizeof(*p) + sizeof(p->qgroups[0]) *
|
||||
|
1
qgroup.h
1
qgroup.h
@ -93,7 +93,6 @@ void btrfs_qgroup_free_comparer_set(struct btrfs_qgroup_comparer_set *comp_set);
|
||||
int btrfs_qgroup_setup_comparer(struct btrfs_qgroup_comparer_set **comp_set,
|
||||
enum btrfs_qgroup_comp_enum comparer,
|
||||
int is_descending);
|
||||
u64 parse_qgroupid(char *p);
|
||||
int qgroup_inherit_size(struct btrfs_qgroup_inherit *p);
|
||||
int qgroup_inherit_add_group(struct btrfs_qgroup_inherit **inherit, char *arg);
|
||||
int qgroup_inherit_add_copy(struct btrfs_qgroup_inherit **inherit, char *arg,
|
||||
|
28
utils.c
28
utils.c
@ -1795,6 +1795,34 @@ u64 parse_size(char *s)
|
||||
return ret;
|
||||
}
|
||||
|
||||
u64 parse_qgroupid(const char *p)
|
||||
{
|
||||
char *s = strchr(p, '/');
|
||||
const char *ptr_src_end = p + strlen(p);
|
||||
char *ptr_parse_end = NULL;
|
||||
u64 level;
|
||||
u64 id;
|
||||
|
||||
if (!s) {
|
||||
id = strtoull(p, &ptr_parse_end, 10);
|
||||
if (ptr_parse_end != ptr_src_end)
|
||||
goto err;
|
||||
return id;
|
||||
}
|
||||
level = strtoull(p, &ptr_parse_end, 10);
|
||||
if (ptr_parse_end != s)
|
||||
goto err;
|
||||
|
||||
id = strtoull(s + 1, &ptr_parse_end, 10);
|
||||
if (ptr_parse_end != ptr_src_end)
|
||||
goto err;
|
||||
|
||||
return (level << BTRFS_QGROUP_LEVEL_SHIFT) | id;
|
||||
err:
|
||||
fprintf(stderr, "ERROR: invalid qgroupid %s\n", p);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
int open_file_or_dir3(const char *fname, DIR **dirstream, int open_flags)
|
||||
{
|
||||
int ret;
|
||||
|
1
utils.h
1
utils.h
@ -114,6 +114,7 @@ int pretty_size_snprintf(u64 size, char *str, size_t str_bytes, unsigned unit_mo
|
||||
int get_mountpt(char *dev, char *mntpt, size_t size);
|
||||
int btrfs_scan_block_devices(int run_ioctl);
|
||||
u64 parse_size(char *s);
|
||||
u64 parse_qgroupid(const char *p);
|
||||
u64 arg_strtou64(const char *str);
|
||||
int open_file_or_dir(const char *fname, DIR **dirstream);
|
||||
int open_file_or_dir3(const char *fname, DIR **dirstream, int open_flags);
|
||||
|
Loading…
Reference in New Issue
Block a user