diff options
author | Christoph Hellwig <hch@lst.de> | 2015-02-11 19:59:44 +0100 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-03-13 12:10:22 -0400 |
commit | 599bd19bdc4c6b20fd91d50f2f79dececbaf80c1 (patch) | |
tree | 782dec7d04dd789c841e3798ee4c920c9493fe2c /include/linux/aio.h | |
parent | 9d5722b7777e64de2d932f46cfee7765fdcc60d6 (diff) | |
download | linux-599bd19bdc4c6b20fd91d50f2f79dececbaf80c1.tar.gz linux-599bd19bdc4c6b20fd91d50f2f79dececbaf80c1.tar.bz2 linux-599bd19bdc4c6b20fd91d50f2f79dececbaf80c1.zip |
fs: don't allow to complete sync iocbs through aio_complete
The AIO interface is fairly complex because it tries to allow
filesystems to always work async and then wakeup a synchronous
caller through aio_complete. It turns out that basically no one
was doing this to avoid the complexity and context switches,
and we've already fixed up the remaining users and can now
get rid of this case.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/aio.h')
-rw-r--r-- | include/linux/aio.h | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/include/linux/aio.h b/include/linux/aio.h index 132d1ecba435..f8516430490d 100644 --- a/include/linux/aio.h +++ b/include/linux/aio.h @@ -37,7 +37,6 @@ struct kiocb { union { void __user *user; - struct task_struct *tsk; } ki_obj; __u64 ki_user_data; /* user's data for completion */ @@ -63,13 +62,11 @@ static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp) *kiocb = (struct kiocb) { .ki_ctx = NULL, .ki_filp = filp, - .ki_obj.tsk = current, }; } /* prototypes */ #ifdef CONFIG_AIO -extern ssize_t wait_on_sync_kiocb(struct kiocb *iocb); extern void aio_complete(struct kiocb *iocb, long res, long res2); struct mm_struct; extern void exit_aio(struct mm_struct *mm); @@ -77,7 +74,6 @@ extern long do_io_submit(aio_context_t ctx_id, long nr, struct iocb __user *__user *iocbpp, bool compat); void kiocb_set_cancel_fn(struct kiocb *req, kiocb_cancel_fn *cancel); #else -static inline ssize_t wait_on_sync_kiocb(struct kiocb *iocb) { return 0; } static inline void aio_complete(struct kiocb *iocb, long res, long res2) { } struct mm_struct; static inline void exit_aio(struct mm_struct *mm) { } |