Hello
Gorazd Golob wrote:
>
>
> On Mon, 10 Oct 2005, Vladimir V. Saveliev wrote:
>
>>
>> Does it work on ext2?
> Yes it work on ext2, ext3, xfs ..
>
>> Are you sure that file offset is properly aligned?
> Yes ..
>
Would you please try whether the attached program works for you?
>
>>
>>> Without O_DIRECT works fine as said in previous mails. Write with
>>> O_DIRECT works fine. Kernel version is:
>>> Linux xxxx 2.6.12.6 #6 SMP Thu Sep 15 12:29:53 CEST 2005 x86_64 Intel(R)
>>> Xeon(TM) CPU 3.00GHz GenuineIntel GNU/Linux
>>>
>>> please let me know if you need more info.
>>>
>>> tnx, Gorazd
>>>
>>>
>>>
>>>
>>>
>>>
>>>>> Or in other words is reiserfs3 supporting reading with O_DIRECT flag?
>>>>> Writing works well with 0_DIRECT on reiserfs3.
>>>>>
>>>>> Gorazd
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#define O_DIRECT 040000
int main(int argc, char **argv)
{
int fd;
size_t rd;
char *buf;
if (argc != 2) {
printf("%s filename\n", argv[0]);
return 0;
}
fd = open(argv[1], O_RDONLY | O_DIRECT);
if (fd == -1) {
perror("open failed");
return 0;
}
if (posix_memalign(&buf, 4096, 4096)) {
perror("malloc failed");
return 0;
}
rd = read(fd, buf, 4096);
if (rd != 4096) {
perror("read failed");
return 0;
}
free(buf);
close(fd);
return 0;
}