In order to compute the amount of free space (in bytes), the number
of available blocks (f_bavail) should be multiplied by the block
size (f_frsize) instead of the total number of blocks (f_blocks).
Signed-off-by: Fabio D'Urso <fdurso@google.com>
---
hw/usb/dev-mtp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c
index 7e4a0765ae..554b397e88 100644
--- a/hw/usb/dev-mtp.c
+++ b/hw/usb/dev-mtp.c
@@ -886,7 +886,7 @@ static MTPData *usb_mtp_get_storage_info(MTPState *s, MTPControl *c)
rc = statvfs(s->root, &buf);
if (rc == 0) {
usb_mtp_add_u64(d, (uint64_t)buf.f_frsize * buf.f_blocks);
- usb_mtp_add_u64(d, (uint64_t)buf.f_bavail * buf.f_blocks);
+ usb_mtp_add_u64(d, (uint64_t)buf.f_frsize * buf.f_bavail);
usb_mtp_add_u32(d, buf.f_ffree);
} else {
usb_mtp_add_u64(d, 0xffffffff);
--
2.45.2.627.g7a2c4fd464-goog
On 18/6/24 02:36, Fabio D'Urso wrote: > In order to compute the amount of free space (in bytes), the number > of available blocks (f_bavail) should be multiplied by the block > size (f_frsize) instead of the total number of blocks (f_blocks). > > Signed-off-by: Fabio D'Urso <fdurso@google.com> > --- > hw/usb/dev-mtp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Patch queued, thanks!
On 18/6/24 02:36, Fabio D'Urso wrote: > In order to compute the amount of free space (in bytes), the number > of available blocks (f_bavail) should be multiplied by the block > size (f_frsize) instead of the total number of blocks (f_blocks). > > Signed-off-by: Fabio D'Urso <fdurso@google.com> > --- > hw/usb/dev-mtp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c > index 7e4a0765ae..554b397e88 100644 > --- a/hw/usb/dev-mtp.c > +++ b/hw/usb/dev-mtp.c > @@ -886,7 +886,7 @@ static MTPData *usb_mtp_get_storage_info(MTPState *s, MTPControl *c) > rc = statvfs(s->root, &buf); > if (rc == 0) { > usb_mtp_add_u64(d, (uint64_t)buf.f_frsize * buf.f_blocks); > - usb_mtp_add_u64(d, (uint64_t)buf.f_bavail * buf.f_blocks); > + usb_mtp_add_u64(d, (uint64_t)buf.f_frsize * buf.f_bavail); Indeed (USB MTP Spec v1.1, 5.2.2.5 "Free Space In Bytes"). Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > usb_mtp_add_u32(d, buf.f_ffree); > } else { > usb_mtp_add_u64(d, 0xffffffff);
© 2016 - 2024 Red Hat, Inc.