Commit 6212e3a388fdda3f19fa660ef5a30edf54d1dcfd
Committed by
Linus Torvalds
1 parent
9cd9a0058d
Exists in
master
and in
20 other branches
Remove struct task_struct::io_wait
Hell knows what happened in commit 63b05203af57e7de4f3bb63b8b81d43bc196d32b during 2.6.9 development. Commit introduced io_wait field which remained write-only than and still remains write-only. Also garbage collect macros which "use" io_wait. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 4 changed files with 2 additions and 34 deletions Side-by-side Diff
fs/aio.c
... | ... | @@ -710,18 +710,9 @@ |
710 | 710 | |
711 | 711 | /* |
712 | 712 | * Now we are all set to call the retry method in async |
713 | - * context. By setting this thread's io_wait context | |
714 | - * to point to the wait queue entry inside the currently | |
715 | - * running iocb for the duration of the retry, we ensure | |
716 | - * that async notification wakeups are queued by the | |
717 | - * operation instead of blocking waits, and when notified, | |
718 | - * cause the iocb to be kicked for continuation (through | |
719 | - * the aio_wake_function callback). | |
713 | + * context. | |
720 | 714 | */ |
721 | - BUG_ON(current->io_wait != NULL); | |
722 | - current->io_wait = &iocb->ki_wait; | |
723 | 715 | ret = retry(iocb); |
724 | - current->io_wait = NULL; | |
725 | 716 | |
726 | 717 | if (ret != -EIOCBRETRY && ret != -EIOCBQUEUED) { |
727 | 718 | BUG_ON(!list_empty(&iocb->ki_wait.task_list)); |
... | ... | @@ -1508,10 +1499,7 @@ |
1508 | 1499 | * Simply triggers a retry of the operation via kick_iocb. |
1509 | 1500 | * |
1510 | 1501 | * This callback is specified in the wait queue entry in |
1511 | - * a kiocb (current->io_wait points to this wait queue | |
1512 | - * entry when an aio operation executes; it is used | |
1513 | - * instead of a synchronous wait when an i/o blocking | |
1514 | - * condition is encountered during aio). | |
1502 | + * a kiocb. | |
1515 | 1503 | * |
1516 | 1504 | * Note: |
1517 | 1505 | * This routine is executed with the wait queue lock held. |
include/linux/aio.h
... | ... | @@ -232,18 +232,6 @@ |
232 | 232 | __put_ioctx(kioctx); \ |
233 | 233 | } while (0) |
234 | 234 | |
235 | -#define in_aio() (unlikely(!is_sync_wait(current->io_wait))) | |
236 | - | |
237 | -/* may be used for debugging */ | |
238 | -#define warn_if_async() \ | |
239 | -do { \ | |
240 | - if (in_aio()) { \ | |
241 | - printk(KERN_ERR "%s(%s:%d) called in async context!\n", \ | |
242 | - __FUNCTION__, __FILE__, __LINE__); \ | |
243 | - dump_stack(); \ | |
244 | - } \ | |
245 | -} while (0) | |
246 | - | |
247 | 235 | #define io_wait_to_kiocb(wait) container_of(wait, struct kiocb, ki_wait) |
248 | 236 | |
249 | 237 | #include <linux/aio_abi.h> |
include/linux/sched.h
... | ... | @@ -1110,13 +1110,6 @@ |
1110 | 1110 | |
1111 | 1111 | unsigned long ptrace_message; |
1112 | 1112 | siginfo_t *last_siginfo; /* For ptrace use. */ |
1113 | -/* | |
1114 | - * current io wait handle: wait queue entry to use for io waits | |
1115 | - * If this thread is processing aio, this points at the waitqueue | |
1116 | - * inside the currently handled kiocb. It may be NULL (i.e. default | |
1117 | - * to a stack based synchronous wait) if its doing sync IO. | |
1118 | - */ | |
1119 | - wait_queue_t *io_wait; | |
1120 | 1113 | #ifdef CONFIG_TASK_XACCT |
1121 | 1114 | /* i/o counters(bytes read/written, #syscalls */ |
1122 | 1115 | u64 rchar, wchar, syscr, syscw; |