[lkml]   [2014]   [Oct]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] Return short read or 0 at end of a raw device, not EIO
David Jeffery <> writes:

> On 09/30/2014 11:28 AM, Christoph Hellwig wrote:
>> On Mon, Sep 29, 2014 at 06:08:11PM -0400, David Jeffery wrote:
>>> On 09/29/2014 03:05 PM, Christoph Hellwig wrote:
>>>> Seems like this should be changed in the generic code, or is there some
>>>> reason why it would return EIO only for devices, but not for regular
>>>> files in this case?
>>> Regular files shouldn't be returning EIO and don't in my tests. The file
>>> systems manage direct I/O EOF handling in their own block or direct_IO
>>> callbacks. Block devices do not and instead do the size checks up
>>> front. Raw devices were bypassing the block device check, so only the
>>> raw driver should be having this issue.
>> So I guess the problem is commit
>> "blkdev_aio_read(): switch to generic_file_read_iter(), get rid of iov_shorten()"
>> which removes the iov_shorten call in blkdev_aio_read? This should be
>> mentioned in the changelog.
>> But maybe we should instead make block devices behave more similar to
>> regular files in this respect?
> The issue's origin should be with bbec0270bdd8 "blkdev_max_block: make
> private to fs/buffer.c". This change intentionally removed the size
> checks from blkdev_get_block() to avoid issues with the size variables
> changing underneath the calls. Commit 684c9aaebbb0 is the initial
> commit to add the size checks with blkdev_aio_read() since
> blkdev_get_block() no longer checks size. As the raw driver was also
> dependent on the size checks in blkdev_get_block(), it was broken by
> bbec0270bdd8 but not fixed at all by 684c9aaebbb0.
>> Also did you make sure to add your regression test somewhere, e.g. ltp?
> No I have not. I'll see about an ltp test.

Christoph, do you have any issues with the patch as it stands? Whose
tree do you think this should go through? akpm's?


 \ /
  Last update: 2014-10-10 20:01    [W:0.079 / U:6.500 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site