aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/aio.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/aio.h')
-rw-r--r--include/linux/aio.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/include/linux/aio.h b/include/linux/aio.h
index f0a8481af99b..7308836dd045 100644
--- a/include/linux/aio.h
+++ b/include/linux/aio.h
@@ -12,7 +12,7 @@
12struct kioctx; 12struct kioctx;
13struct kiocb; 13struct kiocb;
14 14
15#define KIOCB_SYNC_KEY (~0U) 15#define KIOCB_KEY 0
16 16
17/* 17/*
18 * We use ki_cancel == KIOCB_CANCELLED to indicate that a kiocb has been either 18 * We use ki_cancel == KIOCB_CANCELLED to indicate that a kiocb has been either
@@ -56,10 +56,9 @@ typedef int (kiocb_cancel_fn)(struct kiocb *, struct io_event *);
56 */ 56 */
57struct kiocb { 57struct kiocb {
58 atomic_t ki_users; 58 atomic_t ki_users;
59 unsigned ki_key; /* id of this request */
60 59
61 struct file *ki_filp; 60 struct file *ki_filp;
62 struct kioctx *ki_ctx; /* may be NULL for sync ops */ 61 struct kioctx *ki_ctx; /* NULL for sync ops */
63 kiocb_cancel_fn *ki_cancel; 62 kiocb_cancel_fn *ki_cancel;
64 ssize_t (*ki_retry)(struct kiocb *); 63 ssize_t (*ki_retry)(struct kiocb *);
65 void (*ki_dtor)(struct kiocb *); 64 void (*ki_dtor)(struct kiocb *);
@@ -95,14 +94,14 @@ struct kiocb {
95 94
96static inline bool is_sync_kiocb(struct kiocb *kiocb) 95static inline bool is_sync_kiocb(struct kiocb *kiocb)
97{ 96{
98 return kiocb->ki_key == KIOCB_SYNC_KEY; 97 return kiocb->ki_ctx == NULL;
99} 98}
100 99
101static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp) 100static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp)
102{ 101{
103 *kiocb = (struct kiocb) { 102 *kiocb = (struct kiocb) {
104 .ki_users = ATOMIC_INIT(1), 103 .ki_users = ATOMIC_INIT(1),
105 .ki_key = KIOCB_SYNC_KEY, 104 .ki_ctx = NULL,
106 .ki_filp = filp, 105 .ki_filp = filp,
107 .ki_obj.tsk = current, 106 .ki_obj.tsk = current,
108 }; 107 };