From nobody Tue Feb 10 11:23:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1710951476; cv=none; d=zohomail.com; s=zohoarc; b=bJ99S3Xrhlo7kVEDpXtmCOJG7/KQbcQouLqqxVEi2emptmSlZkOHN6bhe2Qzc8BN0D/YMCSswLsnIkd+x18xp/dwMpXDPTVZgu3rxFRgv6ITSHGIhk/LbMZFFGhoGafNVgwAsbui7XtpFmFNAwP/COsU1VRWCHaiyorJYBjOjxw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710951476; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=piGTOfCHKlELerBHzZWEUaD5O2g+W0Jy64FNMvCKDD4=; b=fVa4FhLRgsvvz5P3wsVYjsmXRfJVPwltBHUFMSHs8lmkWbMkk0a+/FH/UtQLMMKkWjsVKLI5XV3XfzuMx6/sdTuCSaFu5CH5mijTjacdKV+LUZUd0/9IQsyWDKrtr3Ly3ns3qp4js0zO16L9tz0xCsrigQeV66zUO2mKOViHc0A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1710951476418146.7417400132315; Wed, 20 Mar 2024 09:17:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rmyd8-0007qA-ER; Wed, 20 Mar 2024 12:17:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rmycg-0007Wj-Tu for qemu-devel@nongnu.org; Wed, 20 Mar 2024 12:17:03 -0400 Received: from relay.virtuozzo.com ([130.117.225.111]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rmyca-0003sm-Hd for qemu-devel@nongnu.org; Wed, 20 Mar 2024 12:17:02 -0400 Received: from [130.117.225.1] (helo=dev005.ch-qa.vzint.dev) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1rmyaM-006TNN-1Y; Wed, 20 Mar 2024 17:16:37 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=MIME-Version:Message-Id:Date:Subject:From: Content-Type; bh=piGTOfCHKlELerBHzZWEUaD5O2g+W0Jy64FNMvCKDD4=; b=NeGCnap3RWld XKXeTg6Tstkh2dx1uaKdxw32ize/zUuL81fMfsUWC+z/+XGip1yIMQjH4K4nLQAanSOt5mYXMCNCV 9UZCht3WWNr2k5zSke+OFiuzi4I6kv7rjE4lVTSRjoGk/JN1cMRteTduxB7YdXf0MOnV3huzf6xeJ EFBHaO1WF6Br6Sn1onZw+z3sbZ3wUFYb3PlMotomLX3zuvi/BWgwOOKgY8A3k1IjvSPxXQ8c5yfDh uYQ3vbVqngOLEp7qFrios6iXsFtoodOaqtY0jzd9AvX3368bjM2oOtwaBGTw4iWHPXocax5RF6g8e Rk6l3LQjDDyz2D7h4yk94w==; From: Andrey Drobyshev To: qemu-devel@nongnu.org Cc: berrange@redhat.com, michael.roth@amd.com, kkostiuk@redhat.com, marcandre.lureau@redhat.com, philmd@linaro.org, andrey.drobyshev@virtuozzo.com, den@virtuozzo.com Subject: [PATCH v4 1/7] qga: guest-get-fsinfo: add optional 'total-bytes-privileged' field Date: Wed, 20 Mar 2024 18:16:42 +0200 Message-Id: <20240320161648.158226-2-andrey.drobyshev@virtuozzo.com> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20240320161648.158226-1-andrey.drobyshev@virtuozzo.com> References: <20240320161648.158226-1-andrey.drobyshev@virtuozzo.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=130.117.225.111; envelope-from=andrey.drobyshev@virtuozzo.com; helo=relay.virtuozzo.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1710951478011100003 Content-Type: text/plain; charset="utf-8" Since the commit 25b5ff1a86 ("qga: add mountpoint usage info to GuestFilesystemInfo") we have 2 values reported in guest-get-fsinfo: used =3D (f_blocks - f_bfree), total =3D (f_blocks - f_bfree + f_bavail) as returned by statvfs(3). While on Windows guests that's all we can get with GetDiskFreeSpaceExA(), on POSIX guests we might also be interested in total file system size, as it's visible for root user. Let's add an optional field 'total-bytes-privileged' to GuestFilesystemInfo struct, which'd only be reported on POSIX and represent f_blocks value as returned by statvfs(3). While here, also tweak the docs to reflect better where those values come from. Signed-off-by: Andrey Drobyshev --- qga/commands-posix.c | 2 ++ qga/commands-win32.c | 1 + qga/qapi-schema.json | 7 +++++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/qga/commands-posix.c b/qga/commands-posix.c index 26008db497..7df2d72e9f 100644 --- a/qga/commands-posix.c +++ b/qga/commands-posix.c @@ -1569,8 +1569,10 @@ static GuestFilesystemInfo *build_guest_fsinfo(struc= t FsMount *mount, nonroot_total =3D used + buf.f_bavail; fs->used_bytes =3D used * fr_size; fs->total_bytes =3D nonroot_total * fr_size; + fs->total_bytes_privileged =3D buf.f_blocks * fr_size; =20 fs->has_total_bytes =3D true; + fs->has_total_bytes_privileged =3D true; fs->has_used_bytes =3D true; } =20 diff --git a/qga/commands-win32.c b/qga/commands-win32.c index 6242737b00..6fee0e1e6f 100644 --- a/qga/commands-win32.c +++ b/qga/commands-win32.c @@ -1143,6 +1143,7 @@ static GuestFilesystemInfo *build_guest_fsinfo(char *= guid, Error **errp) fs =3D g_malloc(sizeof(*fs)); fs->name =3D g_strdup(guid); fs->has_total_bytes =3D false; + fs->has_total_bytes_privileged =3D false; fs->has_used_bytes =3D false; if (len =3D=3D 0) { fs->mountpoint =3D g_strdup("System Reserved"); diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json index 9554b566a7..dcc469b268 100644 --- a/qga/qapi-schema.json +++ b/qga/qapi-schema.json @@ -1026,7 +1026,10 @@ # # @used-bytes: file system used bytes (since 3.0) # -# @total-bytes: non-root file system total bytes (since 3.0) +# @total-bytes: filesystem capacity in bytes for unprivileged users (since= 3.0) +# +# @total-bytes-privileged: filesystem capacity in bytes for privileged use= rs +# (since 9.0) # # @disk: an array of disk hardware information that the volume lies # on, which may be empty if the disk type is not supported @@ -1036,7 +1039,7 @@ { 'struct': 'GuestFilesystemInfo', 'data': {'name': 'str', 'mountpoint': 'str', 'type': 'str', '*used-bytes': 'uint64', '*total-bytes': 'uint64', - 'disk': ['GuestDiskAddress']} } + '*total-bytes-privileged': 'uint64', 'disk': ['GuestDiskAddress= ']} } =20 ## # @guest-get-fsinfo: --=20 2.39.3