On Fri, Jun 01, 2018 at 02:11:21PM +0800, Chen Hanxiao wrote: > From: Chen Hanxiao <[email protected]> > > This patch adds support for getting the usage of mounted > filesystem. > It's very useful when we try to monitor guest's filesystem. > > Cc: Michael Roth <[email protected]> > Cc: Eric Blake <[email protected]> > Signed-off-by: Chen Hanxiao <[email protected]> > > --- > v2: > add description in qapi-schema and version numbers > v3: > use float for usage to get more precision. > v4: > make usage as a best-effort query and mark it as optional. > > qga/commands-posix.c | 17 +++++++++++++++++ > qga/qapi-schema.json | 3 ++- > 2 files changed, 19 insertions(+), 1 deletion(-) > > diff --git a/qga/commands-posix.c b/qga/commands-posix.c > index 0dc219dbcf..4facc76953 100644 > --- a/qga/commands-posix.c > +++ b/qga/commands-posix.c > @@ -46,6 +46,7 @@ extern char **environ; > #include <arpa/inet.h> > #include <sys/socket.h> > #include <net/if.h> > +#include <sys/statvfs.h> > > #ifdef FIFREEZE > #define CONFIG_FSFREEZE > @@ -1072,6 +1073,9 @@ static GuestFilesystemInfo *build_guest_fsinfo(struct > FsMount *mount, > Error **errp) > { > GuestFilesystemInfo *fs = g_malloc0(sizeof(*fs)); > + struct statvfs buf; > + unsigned long used, nonroot_total; > + double usage; > char *devpath = g_strdup_printf("/sys/dev/block/%u:%u", > mount->devmajor, mount->devminor); > > @@ -1079,7 +1083,20 @@ static GuestFilesystemInfo *build_guest_fsinfo(struct > FsMount *mount, > fs->type = g_strdup(mount->devtype); > build_guest_fsinfo_for_device(devpath, fs, errp); > > + if (statvfs(fs->mountpoint, &buf)) { > + fs->has_usage = false; > + fs->usage = -1; > + } else { > + used = buf.f_blocks - buf.f_bfree; > + nonroot_total = used + buf.f_bavail; > + usage = (double) used / nonroot_total;
Why calculate the usage here ? IMHO it would make the command more useful if we just reported two separate "used_bytes" and "total_bytes" values. The app can convert to a percentage utilization value if they so desire, while other apps can now get the raw values Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
