On Wed, Apr 28, 2010 at 11:58:15AM +0100, Daniel P. Berrange wrote: > On Tue, Apr 27, 2010 at 04:43:08PM -0600, Eric Blake wrote: > > On 04/27/2010 01:35 PM, Daniel P. Berrange wrote: > > > * src/qemu/qemu_driver.c: Implementation of virDomainGetBlockInfo > > > * src/util/storage_file.h: Add DEV_BSIZE > > > * src/storage/storage_backend.c: Remove DEV_BSIZE > > > > > + if (S_ISREG(sb.st_mode)) { > > > +#ifndef __MINGW32__ > > > + info->physical = (unsigned long long)sb.st_blocks * > > > + (unsigned long long)DEV_BSIZE; > > > > Is it worth checking sb.st_blksize rather than DEV_BSIZE on XSI systems > > where that is part of struct stat? In particular, POSIX allows the > > block size to be file-system dependent, and some file systems (like > > NTFS) have 4k rather than 512 as the block size (is anyone daring enough > > to use NTFS for raw file storage?). > > This code is essentially identical to code in storage_backend.c & in > the future I will unify it. We did originally use sb.st_blksize in > the storage_backend.c impl, but this was not actually correct because > it gives the preferred size for efficient I/O, which is not the same > as the filesystem block size :-( Hence we have to hardcode 512. Yeah I remember the issue, it was rather painful trying to do things the Right Way actually led to a bug, fairly nasty. > The commit was this one, sadly no details in the commit message, but > they'll be in the mail archive somewhere: > > commit e807e4d9e9a766bd00a89b0a9c179edfad52773c > Author: Cole Robinson <crobinso@xxxxxxxxxx> > Date: Fri Apr 3 14:13:02 2009 +0000 > > Fix sparse volume allocation reporting. Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list