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;
}

Reply via email to