[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f105d585-e88c-b037-9905-d0c608c609d9@suse.de>
Date: Tue, 30 May 2017 11:13:29 -0500
From: Goldwyn Rodrigues <rgoldwyn@...e.de>
To: Christoph Hellwig <hch@...radead.org>
Cc: linux-fsdevel@...r.kernel.org, jack@...e.com,
linux-block@...r.kernel.org, linux-btrfs@...r.kernel.org,
linux-ext4@...r.kernel.org, linux-xfs@...r.kernel.org,
axboe@...nel.dk, linux-api@...r.kernel.org,
adam.manzanares@....com, viro@...iv.linux.org.uk,
Goldwyn Rodrigues <rgoldwyn@...e.com>
Subject: Re: [PATCH 09/10] xfs: nowait aio support
On 05/29/2017 03:33 AM, Christoph Hellwig wrote:
> On Sun, May 28, 2017 at 09:38:26PM -0500, Goldwyn Rodrigues wrote:
>>
>>
>> On 05/28/2017 04:31 AM, Christoph Hellwig wrote:
>>> Despite my previous reviewed-by tag this will need another fix:
>>>
>>> xfs_file_iomap_begin needs to return EAGAIN if we don't have the extent
>>> list in memoery already. E.g. something like this:
>>>
>>> if ((flags & IOMAP_NOWAIT) && !(ip->i_d.if_flags & XFS_IFEXTENTS)) {
>>> error = -EAGAIN;
>>> goto out_unlock;
>>> }
>>>
>>> right after locking the ilock.
>>>
>>
>> I am not sure if it is right to penalize the application to write to
>> file which has been freshly opened (and is the first one to open). It
>> basically means extent maps needs to be read from disk. Do you see a
>> reason it would have a non-deterministic wait if it is the only user? I
>> understand the block layer can block if it has too many requests though.
>
> For either a read or a write we might have to read in the extent list
> (note that for few enough extents they are stored in the inode and
> we won't have to), in which case the call will block and by the
> semantics you define we'll need to return -EAGAIN.
Yes, that is right. I will include it in.
>
> Btw, can you write a small blurb up for the man page to document these
> Ñ•emantics in man-page like language?
>
Yes, but which man page would it belong to?
Should it be a subsection of errors in io_getevents/io_submit. We don't
want to add ERRORS to io_getevents() because it would be the return
value of the io_getevents call, and not the ones in the iocb structure.
Should it be a new man page, say for iocb(7/8)?
--
Goldwyn
Powered by blists - more mailing lists