diff options
| -rw-r--r-- | fs/aio.c | 27 |
1 files changed, 15 insertions, 12 deletions
| @@ -67,13 +67,6 @@ struct kioctx { | |||
| 67 | unsigned long user_id; | 67 | unsigned long user_id; |
| 68 | struct hlist_node list; | 68 | struct hlist_node list; |
| 69 | 69 | ||
| 70 | wait_queue_head_t wait; | ||
| 71 | |||
| 72 | spinlock_t ctx_lock; | ||
| 73 | |||
| 74 | atomic_t reqs_active; | ||
| 75 | struct list_head active_reqs; /* used for cancellation */ | ||
| 76 | |||
| 77 | /* | 70 | /* |
| 78 | * This is what userspace passed to io_setup(), it's not used for | 71 | * This is what userspace passed to io_setup(), it's not used for |
| 79 | * anything but counting against the global max_reqs quota. | 72 | * anything but counting against the global max_reqs quota. |
| @@ -92,19 +85,29 @@ struct kioctx { | |||
| 92 | struct page **ring_pages; | 85 | struct page **ring_pages; |
| 93 | long nr_pages; | 86 | long nr_pages; |
| 94 | 87 | ||
| 88 | struct rcu_head rcu_head; | ||
| 89 | struct work_struct rcu_work; | ||
| 90 | |||
| 91 | struct { | ||
| 92 | atomic_t reqs_active; | ||
| 93 | } ____cacheline_aligned_in_smp; | ||
| 94 | |||
| 95 | struct { | ||
| 96 | spinlock_t ctx_lock; | ||
| 97 | struct list_head active_reqs; /* used for cancellation */ | ||
| 98 | } ____cacheline_aligned_in_smp; | ||
| 99 | |||
| 95 | struct { | 100 | struct { |
| 96 | struct mutex ring_lock; | 101 | struct mutex ring_lock; |
| 97 | } ____cacheline_aligned; | 102 | wait_queue_head_t wait; |
| 103 | } ____cacheline_aligned_in_smp; | ||
| 98 | 104 | ||
| 99 | struct { | 105 | struct { |
| 100 | unsigned tail; | 106 | unsigned tail; |
| 101 | spinlock_t completion_lock; | 107 | spinlock_t completion_lock; |
| 102 | } ____cacheline_aligned; | 108 | } ____cacheline_aligned_in_smp; |
| 103 | 109 | ||
| 104 | struct page *internal_pages[AIO_RING_PAGES]; | 110 | struct page *internal_pages[AIO_RING_PAGES]; |
| 105 | |||
| 106 | struct rcu_head rcu_head; | ||
| 107 | struct work_struct rcu_work; | ||
| 108 | }; | 111 | }; |
| 109 | 112 | ||
| 110 | /*------ sysctl variables----*/ | 113 | /*------ sysctl variables----*/ |
