Hi all,
OK, my experiments confirm that BLKBSZGET returns 1024 on partitions
that have not been mounted and on complete disk devices (eg. /dev/hda).
But there remain some mysteries .. :-)
My original theory was that:
- read offset must be aligned (multiple of 512)
- read buffer must be page_aligned (4096 on IA32)
- count must be "aligned" (multiple of 512)
Then based on the postings on the list it became (for 2.4 kernels):
- read offset must be BLKBSZGET aligned
- read buffer must be BLKBSZGET aligned
- count must be BLKBSZGET aligned
- on an unused/unmounted partition BLKBSZGET returns 1024
(on an IDE disk partition), so everything must be 1024 byte aligned
But a friend of mine uses O_DIRECT with 2.4 kernels to read *individual*
single harddisk sectors of 512 bytes ! He claims that my original
theory is the right one and that you can read 512 byte chunks on 512
byte bounderies (he uses the complete device eg. /dev/hda).
So, I'm confused. What are *exactly* the 2.4 O_DIRECT alignment
requirements ?
greetings,
Rob van Nieuwkerk
(yes, I should write a small test program, but my real app will be ready soon)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/