Thanks for the explanation, Tyler. If the st_blocks field is changed to reflect the space taken by the underlying (lower) file system, I think that the header should be definately included in the count. The header may be "only" 8KB, but it's per file so if you have a huge collection of small files, the total space taken will be much higher with headers counted in. For example, the linux-2.6.32-rc6 kernel source contains 30477 files. With overhead of 8 KB per file, the total difference with and without headers will be 30477*8 KB or about 240MB (the apparent size for the kernel is 349MB). I'd hope differences that big to be reflected on the "du" output.
Thanks for the explanation, Tyler. If the st_blocks field is changed to reflect the space taken by the underlying (lower) file system, I think that the header should be definately included in the count. The header may be "only" 8KB, but it's per file so if you have a huge collection of small files, the total space taken will be much higher with headers counted in. For example, the linux-2.6.32-rc6 kernel source contains 30477 files. With overhead of 8 KB per file, the total difference with and without headers will be 30477*8 KB or about 240MB (the apparent size for the kernel is 349MB). I'd hope differences that big to be reflected on the "du" output.