Re: [RFC] Handle EOF in case of not aligned direct io read in kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 18/1/17 22:25, Matthew Wilcox wrote:
> On Wed, Jan 17, 2018 at 10:09:28AM +0000, Steven Whitehouse wrote:
>> Hi,
>>
>>
>> On 17/01/18 09:28, Joseph Qi wrote:
>>> Hi All,
>>>
>>> commit 9fe55eea7e4b ("Fix race when checking i_size on direct i/o read")
>>> has removed the pos check due to the race case.
>>>
>>> Now if I want to do direct read on a file which size is not sector
>>> alignment, it will return EINVAL in the last round. That means I have to
>>> handle the case by checking file size in user space, which I think is a
>>> bit inconvenient.
>> What do you mean by "not sector alignment"? Are you intending to read files
>> with any arbitrary size, or those with 512 byte alignment on a filesystem
>> with some larger block size, or something else?
> I think he's saying that the file he's trying to read has a length which
> is not a multiple of 512.
Yes, suppose I am trying to read a file which size is 4000 bytes, and
the allocated buffer is 4096 bytes.
When running my test program, it returns 4000 for the first round and
-22 for the second.
While running my test program on 3.10, it returns 4000 and then 0,
which is my expected behavior.

Sorry for the brought misunderstanding.




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux