Subject: Re: linux-next: manual merge of the block tree with the vfs tree

From: Christoph Hellwig <[email-masked]>
Date: Mon, 2 Feb 2015 09:06:08 +0100

On Sun, Feb 01, 2015 at 05:56:19AM +0000, Al Viro wrote:
> FWIW, there's an interesting question about the second commit in there -
> what do we want vfs_iter_{read,write}() to do with *iter in case if it
> has hit this:
>         if (ret == -EIOCBQUEUED)
>                 ret = wait_on_sync_kiocb(&kiocb);
> 
> Do we require ->read_iter() and ->write_iter() on sync kiocb to do all
> advancing the iter before returning -EIOCBQUEUED?  What's more, do we
> ever want to have it returned on sync kiocb?  IOW, is there any point
> in having that wait in callers?

See my "[RFC] split struct kiocb" series to sort out that mess.  For
now none of the callers relies on the iov_iter being advances, so until
then we can simply ignore that problem until then.

> I'm not sure if ep_io() and ep_aio_rwtail() + wait for completion are
> eqiuvalent; ep_read/ep_write are very easy to turn into sync side of
> ->read_iter/->write_iter and if that's equivalent to ep_aio_read/ep_aio_write
> on sync kiocb + waiting for completion, we are fine.

They are very similar, and yes thet should be moved to iter version of
the methods.  I actually started that but then ran into problems with
the aio core that needed addressing first.