• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/

Lines Matching refs:kiocb

85 	kiocb_cachep = KMEM_CACHE(kiocb, SLAB_HWCACHE_ALIGN|SLAB_PANIC);
263 (nr_events > (0x10000000U / sizeof(struct kiocb)))) {
341 int (*cancel)(struct kiocb *, struct io_event *);
347 struct kiocb *iocb = list_kiocb(pos);
386 * Waits on the given sync kiocb to complete.
388 ssize_t wait_on_sync_kiocb(struct kiocb *iocb)
438 * Returns with kiocb->users set to 2. The io submit code path holds
443 static struct kiocb *__aio_get_req(struct kioctx *ctx)
445 struct kiocb *req = NULL;
486 static inline struct kiocb *aio_get_req(struct kioctx *ctx)
488 struct kiocb *req;
501 static inline void really_put_req(struct kioctx *ctx, struct kiocb *req)
522 struct kiocb *req = list_kiocb(fput_head.next);
546 static int __aio_put_req(struct kioctx *ctx, struct kiocb *req)
581 * Returns true if this put was the last user of the kiocb,
584 int aio_put_req(struct kiocb *req)
616 * Queue up a kiocb to be retried. Assumes that the kiocb
620 * the kiocb (to tell the caller to activate the work
624 static inline int __queue_kicked_iocb(struct kiocb *iocb)
660 static ssize_t aio_run_iocb(struct kiocb *iocb)
663 ssize_t (*retry)(struct kiocb *);
764 struct kiocb *iocb;
771 iocb = list_entry(run_list.next, struct kiocb,
866 * Called by kick_iocb to queue the kiocb for retry
870 static void try_queue_kicked_iocb(struct kiocb *iocb)
893 void kick_iocb(struct kiocb *iocb)
912 int aio_complete(struct kiocb *iocb, long res, long res2)
1296 static void aio_advance_iovec(struct kiocb *iocb, ssize_t ret)
1319 static ssize_t aio_rw_vect_retry(struct kiocb *iocb)
1324 ssize_t (*rw_op)(struct kiocb *, const struct iovec *,
1370 static ssize_t aio_fdsync(struct kiocb *iocb)
1380 static ssize_t aio_fsync(struct kiocb *iocb)
1390 static ssize_t aio_setup_vectored_rw(int type, struct kiocb *kiocb, bool compat)
1397 (struct compat_iovec __user *)kiocb->ki_buf,
1398 kiocb->ki_nbytes, 1, &kiocb->ki_inline_vec,
1399 &kiocb->ki_iovec);
1403 (struct iovec __user *)kiocb->ki_buf,
1404 kiocb->ki_nbytes, 1, &kiocb->ki_inline_vec,
1405 &kiocb->ki_iovec);
1409 kiocb->ki_nr_segs = kiocb->ki_nbytes;
1410 kiocb->ki_cur_seg = 0;
1412 kiocb->ki_nbytes = ret;
1413 kiocb->ki_left = ret;
1420 static ssize_t aio_setup_single_vector(struct kiocb *kiocb)
1422 kiocb->ki_iovec = &kiocb->ki_inline_vec;
1423 kiocb->ki_iovec->iov_base = kiocb->ki_buf;
1424 kiocb->ki_iovec->iov_len = kiocb->ki_left;
1425 kiocb->ki_nr_segs = 1;
1426 kiocb->ki_cur_seg = 0;
1433 * setup for the kiocb at the time of io submission.
1435 static ssize_t aio_setup_iocb(struct kiocb *kiocb, bool compat)
1437 struct file *file = kiocb->ki_filp;
1440 switch (kiocb->ki_opcode) {
1446 if (unlikely(!access_ok(VERIFY_WRITE, kiocb->ki_buf,
1447 kiocb->ki_left)))
1452 ret = aio_setup_single_vector(kiocb);
1457 kiocb->ki_retry = aio_rw_vect_retry;
1464 if (unlikely(!access_ok(VERIFY_READ, kiocb->ki_buf,
1465 kiocb->ki_left)))
1470 ret = aio_setup_single_vector(kiocb);
1475 kiocb->ki_retry = aio_rw_vect_retry;
1484 ret = aio_setup_vectored_rw(READ, kiocb, compat);
1489 kiocb->ki_retry = aio_rw_vect_retry;
1498 ret = aio_setup_vectored_rw(WRITE, kiocb, compat);
1503 kiocb->ki_retry = aio_rw_vect_retry;
1508 kiocb->ki_retry = aio_fdsync;
1513 kiocb->ki_retry = aio_fsync;
1520 if (!kiocb->ki_retry)
1566 struct kiocb *req;
1725 static struct kiocb *lookup_kiocb(struct kioctx *ctx, struct iocb __user *iocb,
1734 struct kiocb *kiocb = list_kiocb(pos);
1735 if (kiocb->ki_obj.user == iocb && kiocb->ki_key == key)
1736 return kiocb;
1754 int (*cancel)(struct kiocb *iocb, struct io_event *res);
1756 struct kiocb *kiocb;
1770 kiocb = lookup_kiocb(ctx, iocb, key);
1771 if (kiocb && kiocb->ki_cancel) {
1772 cancel = kiocb->ki_cancel;
1773 kiocb->ki_users ++;
1774 kiocbSetCancelled(kiocb);
1783 tmp.obj = (u64)(unsigned long)kiocb->ki_obj.user;
1784 tmp.data = kiocb->ki_user_data;
1785 ret = cancel(kiocb, &tmp);