
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?).
+#ifndef DEV_BSIZE +# define DEV_BSIZE 512 +#endif
Maybe the right thing to do is rewrite a macro: #if HAVE_STRUCT_STAT_ST_BLKSIZE # define BSIZE(s) ((s).st_blksize) #elif defined DEV_BSIZE # define BSIZE(s) DEV_BSIZE #else # define BSIZE(s) 512 #endif and use BSIZE(sb) instead of DEV_BSIZE; it also involves using a configure check for AC_CHECK_MEMBERS([struct stat.st_blksize]). But I think that can be an independent patch, so: ACK. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org