diff options
Diffstat (limited to 'fs/aio.c')
-rw-r--r-- | fs/aio.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -53,13 +53,13 @@ static kmem_cache_t *kioctx_cachep; | |||
53 | static struct workqueue_struct *aio_wq; | 53 | static struct workqueue_struct *aio_wq; |
54 | 54 | ||
55 | /* Used for rare fput completion. */ | 55 | /* Used for rare fput completion. */ |
56 | static void aio_fput_routine(void *); | 56 | static void aio_fput_routine(struct work_struct *); |
57 | static DECLARE_WORK(fput_work, aio_fput_routine, NULL); | 57 | static DECLARE_WORK(fput_work, aio_fput_routine); |
58 | 58 | ||
59 | static DEFINE_SPINLOCK(fput_lock); | 59 | static DEFINE_SPINLOCK(fput_lock); |
60 | static LIST_HEAD(fput_head); | 60 | static LIST_HEAD(fput_head); |
61 | 61 | ||
62 | static void aio_kick_handler(void *); | 62 | static void aio_kick_handler(struct work_struct *); |
63 | static void aio_queue_work(struct kioctx *); | 63 | static void aio_queue_work(struct kioctx *); |
64 | 64 | ||
65 | /* aio_setup | 65 | /* aio_setup |
@@ -227,7 +227,7 @@ static struct kioctx *ioctx_alloc(unsigned nr_events) | |||
227 | 227 | ||
228 | INIT_LIST_HEAD(&ctx->active_reqs); | 228 | INIT_LIST_HEAD(&ctx->active_reqs); |
229 | INIT_LIST_HEAD(&ctx->run_list); | 229 | INIT_LIST_HEAD(&ctx->run_list); |
230 | INIT_WORK(&ctx->wq, aio_kick_handler, ctx); | 230 | INIT_DELAYED_WORK(&ctx->wq, aio_kick_handler); |
231 | 231 | ||
232 | if (aio_setup_ring(ctx) < 0) | 232 | if (aio_setup_ring(ctx) < 0) |
233 | goto out_freectx; | 233 | goto out_freectx; |
@@ -469,7 +469,7 @@ static inline void really_put_req(struct kioctx *ctx, struct kiocb *req) | |||
469 | wake_up(&ctx->wait); | 469 | wake_up(&ctx->wait); |
470 | } | 470 | } |
471 | 471 | ||
472 | static void aio_fput_routine(void *data) | 472 | static void aio_fput_routine(struct work_struct *data) |
473 | { | 473 | { |
474 | spin_lock_irq(&fput_lock); | 474 | spin_lock_irq(&fput_lock); |
475 | while (likely(!list_empty(&fput_head))) { | 475 | while (likely(!list_empty(&fput_head))) { |
@@ -857,9 +857,9 @@ static inline void aio_run_all_iocbs(struct kioctx *ctx) | |||
857 | * space. | 857 | * space. |
858 | * Run on aiod's context. | 858 | * Run on aiod's context. |
859 | */ | 859 | */ |
860 | static void aio_kick_handler(void *data) | 860 | static void aio_kick_handler(struct work_struct *work) |
861 | { | 861 | { |
862 | struct kioctx *ctx = data; | 862 | struct kioctx *ctx = container_of(work, struct kioctx, wq.work); |
863 | mm_segment_t oldfs = get_fs(); | 863 | mm_segment_t oldfs = get_fs(); |
864 | int requeue; | 864 | int requeue; |
865 | 865 | ||
@@ -874,7 +874,7 @@ static void aio_kick_handler(void *data) | |||
874 | * we're in a worker thread already, don't use queue_delayed_work, | 874 | * we're in a worker thread already, don't use queue_delayed_work, |
875 | */ | 875 | */ |
876 | if (requeue) | 876 | if (requeue) |
877 | queue_work(aio_wq, &ctx->wq); | 877 | queue_delayed_work(aio_wq, &ctx->wq, 0); |
878 | } | 878 | } |
879 | 879 | ||
880 | 880 | ||