Messages in this thread | | | Date | Mon, 2 Feb 2015 09:06:08 +0100 | From | Christoph Hellwig <> | Subject | Re: linux-next: manual merge of the block tree with the vfs tree |
| |
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.
| |