btrfs-progs: use get_sysfs_proto_supported() in get_sysfs_proto_supported()

Use the sysfs helper to read u64 value of send stream.

Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
David Sterba 2023-12-01 01:58:56 +01:00
parent 22495fc8fd
commit 9da7e92af9
1 changed files with 5 additions and 12 deletions

View File

@ -438,25 +438,18 @@ static void free_send_info(struct btrfs_send *sctx)
static u32 get_sysfs_proto_supported(void)
{
int fd;
int ret;
char buf[32] = {};
char *end = NULL;
u64 version;
fd = sysfs_open_file("features/send_stream_version");
if (fd < 0) {
ret = sysfs_read_file_u64("features/send_stream_version", &version);
if (ret < 0) {
/*
* No file is either no version support or old kernel with just
* v1.
* No file or error is either no version support or old kernel
* with just v1.
*/
return 1;
}
ret = sysfs_read_file(fd, buf, sizeof(buf));
close(fd);
if (ret <= 0)
return 1;
version = strtoull(buf, &end, 10);
if (version == ULLONG_MAX && errno == ERANGE)
return 1;
if (version > U32_MAX) {