Message ID | 20240618003657.3344685-1-fdurso@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/usb/dev-mtp: Correctly report free space | expand |
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);
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!
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);
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(-)