`Could not calculate available disk space (statvfs), errno: 4, strerror: Interrupted system call`

> EINTR надо обрабатывать в цикле, см. в качестве примера ReadBufferFromFileDescriptor.cpp.
> Сигнал USR1, USR2 от профайлера, скорее всего.
{
    if (absolute_path.is_relative())
        throw Exception("Path is relative. It's a bug.", ErrorCodes::LOGICAL_ERROR);
    absolute_path = std::filesystem::canonical(absolute_path);
    const auto get_device_id = [](const std::filesystem::path & p)
    {
        struct stat st;
        if (stat(p.c_str(), &st))
            throwFromErrnoWithPath("Cannot stat " + p.string(), p.string(), ErrorCodes::SYSTEM_ERROR);
        return st.st_dev;
    };
    
    
    auto device_id = get_device_id(absolute_path);
    while (absolute_path.has_relative_path())
    {
        auto parent = absolute_path.parent_path();
        auto parent_device_id = get_device_id(parent);
        if (device_id != parent_device_id)
            return absolute_path;
        absolute_path = parent;
        device_id = parent_device_id;
    }
    return absolute_path;
}
#if !defined(__linux__)
[[noreturn]]
#endif
String getFilesystemName([[maybe_unused]] const String & mount_point)