I thought based on searching the archives that 2.4 O_DIRECT
requires fs block size alignment of the buffer, and that the
buffer is an exact multiple of block size. This should mean
I can write aligned pages with direct IO, right?
int
main (void)
{
char *buf;
int fd;
buf = memalign(getpagesize(), getpagesize());
fd = open("/tmp/testfile", O_TRUNC|O_WRONLY|O_DIRECT);
if (write(fd, buf, getpagesize()) == -1)
perror("write");
}
$ ./test
write: Invalid argument
$ grep /tmp /proc/mounts
/dev/hda5 /mnt/tmp ext3 rw 0 0
$ sudo dumpe2fs /dev/hda5 | grep Block\ size
dumpe2fs 1.27 (8-Mar-2002)
Block size: 4096
$ uname -rm
2.4.21-pre4-ac1 i686
what silly thing am I not understanding here?
-
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/
This archive was generated by hypermail 2b29 : Thu May 15 2003 - 22:00:55 EST