Lines Matching refs:ifd

69 	struct io_futexv_data *ifd = req->async_data;  in io_futexv_complete()  local
76 res = futex_unqueue_multiple(ifd->futexv, iof->futex_nr); in io_futexv_complete()
85 static bool io_futexv_claim(struct io_futexv_data *ifd) in io_futexv_claim() argument
87 if (test_bit(0, &ifd->owned) || test_and_set_bit_lock(0, &ifd->owned)) in io_futexv_claim()
96 struct io_futex_data *ifd = req->async_data; in __io_futex_cancel() local
98 if (!futex_unqueue(&ifd->q)) in __io_futex_cancel()
102 struct io_futexv_data *ifd = req->async_data; in __io_futex_cancel() local
104 if (!io_futexv_claim(ifd)) in __io_futex_cancel()
160 struct io_futexv_data *ifd = req->async_data; in io_futex_wakev_fn() local
162 if (!io_futexv_claim(ifd)) in io_futex_wakev_fn()
175 struct io_futexv_data *ifd; in io_futexv_prep() local
188 ifd = kzalloc_flex(struct io_futexv_data, futexv, iof->futex_nr, in io_futexv_prep()
190 if (!ifd) in io_futexv_prep()
193 ret = futex_parse_waitv(ifd->futexv, iof->uaddr, iof->futex_nr, in io_futexv_prep()
196 kfree(ifd); in io_futexv_prep()
204 req->async_data = ifd; in io_futexv_prep()
210 struct io_futex_data *ifd = container_of(q, struct io_futex_data, q); in io_futex_wake_fn() local
211 struct io_kiocb *req = ifd->req; in io_futex_wake_fn()
224 struct io_futexv_data *ifd = req->async_data; in io_futexv_wait() local
230 ret = futex_wait_multiple_setup(ifd->futexv, iof->futex_nr, &woken); in io_futexv_wait()
278 struct io_futex_data *ifd = NULL; in io_futex_wait() local
287 ifd = io_cache_alloc(&ctx->futex_cache, GFP_NOWAIT); in io_futex_wait()
288 if (!ifd) { in io_futex_wait()
294 req->async_data = ifd; in io_futex_wait()
295 ifd->q = futex_q_init; in io_futex_wait()
296 ifd->q.bitset = iof->futex_mask; in io_futex_wait()
297 ifd->q.wake = io_futex_wake_fn; in io_futex_wait()
298 ifd->req = req; in io_futex_wait()
301 &ifd->q, NULL, NULL); in io_futex_wait()