/linux-4.1.27/fs/ocfs2/ |
H A D | aops.h | 63 #define ocfs2_iocb_is_rw_locked(iocb) \ 64 test_bit(0, (unsigned long *)&iocb->private) ocfs2_iocb_set_rw_locked() 65 static inline void ocfs2_iocb_set_rw_locked(struct kiocb *iocb, int level) ocfs2_iocb_set_rw_locked() argument 67 set_bit(0, (unsigned long *)&iocb->private); ocfs2_iocb_set_rw_locked() 69 set_bit(1, (unsigned long *)&iocb->private); ocfs2_iocb_set_rw_locked() 71 clear_bit(1, (unsigned long *)&iocb->private); ocfs2_iocb_set_rw_locked() 76 * iocb->private, which is going to be used for communication between 87 #define ocfs2_iocb_clear_rw_locked(iocb) \ 88 clear_bit(OCFS2_IOCB_RW_LOCK, (unsigned long *)&iocb->private) 89 #define ocfs2_iocb_rw_locked_level(iocb) \ 90 test_bit(OCFS2_IOCB_RW_LOCK_LEVEL, (unsigned long *)&iocb->private) 91 #define ocfs2_iocb_set_sem_locked(iocb) \ 92 set_bit(OCFS2_IOCB_SEM, (unsigned long *)&iocb->private) 93 #define ocfs2_iocb_clear_sem_locked(iocb) \ 94 clear_bit(OCFS2_IOCB_SEM, (unsigned long *)&iocb->private) 95 #define ocfs2_iocb_is_sem_locked(iocb) \ 96 test_bit(OCFS2_IOCB_SEM, (unsigned long *)&iocb->private) 98 #define ocfs2_iocb_set_unaligned_aio(iocb) \ 99 set_bit(OCFS2_IOCB_UNALIGNED_IO, (unsigned long *)&iocb->private) 100 #define ocfs2_iocb_clear_unaligned_aio(iocb) \ 101 clear_bit(OCFS2_IOCB_UNALIGNED_IO, (unsigned long *)&iocb->private) 102 #define ocfs2_iocb_is_unaligned_aio(iocb) \ 103 test_bit(OCFS2_IOCB_UNALIGNED_IO, (unsigned long *)&iocb->private)
|
H A D | file.c | 2250 static ssize_t ocfs2_file_write_iter(struct kiocb *iocb, ocfs2_file_write_iter() argument 2260 struct file *file = iocb->ki_filp; ocfs2_file_write_iter() 2277 appending = iocb->ki_flags & IOCB_APPEND ? 1 : 0; ocfs2_file_write_iter() 2278 direct_io = iocb->ki_flags & IOCB_DIRECT ? 1 : 0; ocfs2_file_write_iter() 2282 ocfs2_iocb_clear_sem_locked(iocb); ocfs2_file_write_iter() 2289 ocfs2_iocb_set_sem_locked(iocb); ocfs2_file_write_iter() 2324 ret = generic_write_checks(iocb, from); ocfs2_file_write_iter() 2333 ret = ocfs2_prepare_inode_for_write(file, iocb->ki_pos, count, appending, ocfs2_file_write_iter() 2340 if (direct_io && !is_sync_kiocb(iocb)) ocfs2_file_write_iter() 2341 unaligned_dio = ocfs2_is_io_unaligned(inode, count, iocb->ki_pos); ocfs2_file_write_iter() 2354 iocb->ki_flags &= ~IOCB_DIRECT; ocfs2_file_write_iter() 2366 /* Mark the iocb as needing an unlock in ocfs2_dio_end_io */ ocfs2_file_write_iter() 2367 ocfs2_iocb_set_unaligned_aio(iocb); ocfs2_file_write_iter() 2378 ocfs2_iocb_set_rw_locked(iocb, rw_level); ocfs2_file_write_iter() 2380 written = __generic_file_write_iter(iocb, from); ocfs2_file_write_iter() 2382 BUG_ON(written == -EIOCBQUEUED && !(iocb->ki_flags & IOCB_DIRECT)); ocfs2_file_write_iter() 2390 iocb->ki_pos - written, ocfs2_file_write_iter() 2391 iocb->ki_pos - 1); ocfs2_file_write_iter() 2403 iocb->ki_pos - written, ocfs2_file_write_iter() 2404 iocb->ki_pos - 1); ocfs2_file_write_iter() 2417 if ((ret == -EIOCBQUEUED) || (!ocfs2_iocb_is_rw_locked(iocb))) { ocfs2_file_write_iter() 2424 ocfs2_iocb_clear_unaligned_aio(iocb); ocfs2_file_write_iter() 2434 ocfs2_iocb_clear_sem_locked(iocb); ocfs2_file_write_iter() 2473 static ssize_t ocfs2_file_read_iter(struct kiocb *iocb, ocfs2_file_read_iter() argument 2477 struct file *filp = iocb->ki_filp; ocfs2_file_read_iter() 2493 ocfs2_iocb_clear_sem_locked(iocb); ocfs2_file_read_iter() 2499 if (iocb->ki_flags & IOCB_DIRECT) { ocfs2_file_read_iter() 2501 ocfs2_iocb_set_sem_locked(iocb); ocfs2_file_read_iter() 2510 ocfs2_iocb_set_rw_locked(iocb, rw_level); ocfs2_file_read_iter() 2529 ret = generic_file_read_iter(iocb, to); ocfs2_file_read_iter() 2533 BUG_ON(ret == -EIOCBQUEUED && !(iocb->ki_flags & IOCB_DIRECT)); ocfs2_file_read_iter() 2536 if (ret == -EIOCBQUEUED || !ocfs2_iocb_is_rw_locked(iocb)) { ocfs2_file_read_iter() 2543 ocfs2_iocb_clear_sem_locked(iocb); ocfs2_file_read_iter()
|
H A D | aops.c | 611 static void ocfs2_dio_end_io(struct kiocb *iocb, ocfs2_dio_end_io() argument 616 struct inode *inode = file_inode(iocb->ki_filp); ocfs2_dio_end_io() 620 BUG_ON(!ocfs2_iocb_is_rw_locked(iocb)); ocfs2_dio_end_io() 622 if (ocfs2_iocb_is_sem_locked(iocb)) ocfs2_dio_end_io() 623 ocfs2_iocb_clear_sem_locked(iocb); ocfs2_dio_end_io() 625 if (ocfs2_iocb_is_unaligned_aio(iocb)) { ocfs2_dio_end_io() 626 ocfs2_iocb_clear_unaligned_aio(iocb); ocfs2_dio_end_io() 631 ocfs2_iocb_clear_rw_locked(iocb); ocfs2_dio_end_io() 633 level = ocfs2_iocb_rw_locked_level(iocb); ocfs2_dio_end_io() 778 static ssize_t ocfs2_direct_IO_write(struct kiocb *iocb, ocfs2_direct_IO_write() argument 786 struct file *file = iocb->ki_filp; ocfs2_direct_IO_write() 858 written = __blockdev_direct_IO(iocb, inode, inode->i_sb->s_bdev, iter, ocfs2_direct_IO_write() 948 static ssize_t ocfs2_direct_IO(struct kiocb *iocb, struct iov_iter *iter, ocfs2_direct_IO() argument 951 struct file *file = iocb->ki_filp; ocfs2_direct_IO() 971 return __blockdev_direct_IO(iocb, inode, inode->i_sb->s_bdev, ocfs2_direct_IO() 976 return ocfs2_direct_IO_write(iocb, iter, offset); ocfs2_direct_IO()
|
/linux-4.1.27/include/linux/ |
H A D | aio.h | 18 struct iocb __user *__user *iocbpp, bool compat); 23 struct iocb __user * __user *iocbpp, do_io_submit()
|
H A D | errno.h | 30 #define EIOCBQUEUED 529 /* iocb queued, will get completion event */
|
H A D | nfs_fs.h | 451 extern ssize_t nfs_file_direct_read(struct kiocb *iocb, 454 extern ssize_t nfs_file_direct_write(struct kiocb *iocb,
|
H A D | socket.h | 54 struct kiocb *msg_iocb; /* ptr to iocb for async requests */
|
H A D | syscalls.h | 17 struct iocb; 507 struct iocb __user * __user *); 508 asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb,
|
H A D | fs.h | 71 typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset, 325 void (*ki_complete)(struct kiocb *iocb, long ret, long ret2); 2602 extern ssize_t blkdev_read_iter(struct kiocb *iocb, struct iov_iter *to); 2603 extern ssize_t blkdev_write_iter(struct kiocb *iocb, struct iov_iter *from); 2664 ssize_t __blockdev_direct_IO(struct kiocb *iocb, struct inode *inode, 2670 static inline ssize_t blockdev_direct_IO(struct kiocb *iocb, blockdev_direct_IO() argument 2675 return __blockdev_direct_IO(iocb, inode, inode->i_sb->s_bdev, iter, blockdev_direct_IO()
|
H A D | compat.h | 513 u32 __user *iocb);
|
/linux-4.1.27/fs/ncpfs/ |
H A D | file.c | 101 ncp_file_read_iter(struct kiocb *iocb, struct iov_iter *to) ncp_file_read_iter() argument 103 struct file *file = iocb->ki_filp; ncp_file_read_iter() 106 off_t pos = iocb->ki_pos; ncp_file_read_iter() 157 iocb->ki_pos = pos; ncp_file_read_iter() 168 ncp_file_write_iter(struct kiocb *iocb, struct iov_iter *from) ncp_file_write_iter() argument 170 struct file *file = iocb->ki_filp; ncp_file_write_iter() 179 errno = generic_write_checks(iocb, from); ncp_file_write_iter() 199 pos = iocb->ki_pos; ncp_file_write_iter() 224 iocb->ki_pos = pos; ncp_file_write_iter()
|
/linux-4.1.27/include/uapi/linux/ |
H A D | aio_abi.h | 50 * Valid flags for the "aio_flags" member of the "struct iocb". 52 * IOCB_FLAG_RESFD - Set if the "aio_resfd" member of the "struct iocb" 59 __u64 data; /* the data field from the iocb */ 60 __u64 obj; /* what iocb this event came from */ 79 struct iocb { struct 97 /* flags for the "struct iocb" */
|
/linux-4.1.27/tools/usb/ffs-aio-example/multibuff/device_app/ |
H A D | aio_multibuff.c | 144 struct iocb **iocb; member in struct:io_buffer 212 iobuf->iocb = malloc(n*sizeof(*iobuf->iocb)); init_bufs() 218 iobuf->iocb[i] = malloc(sizeof(**iobuf->iocb)); init_bufs() 228 free(iobuf->iocb[i]); delete_bufs() 231 free(iobuf->iocb); delete_bufs() 332 io_prep_pwrite(iobuf[i].iocb[j], ep1, main() 336 iobuf[i].iocb[j]->u.c.flags |= IOCB_FLAG_RESFD; main() 337 iobuf[i].iocb[j]->u.c.resfd = evfd; main() 340 ret = io_submit(ctx, iobuf[i].cnt, iobuf[i].iocb); main() 365 /* if all req's from iocb completed */ main()
|
/linux-4.1.27/fs/ |
H A D | aio.c | 178 struct iocb __user *ki_user_iocb; /* user's aiocb */ 185 * If the aio_resfd field of the userspace iocb is not zero, 524 void kiocb_set_cancel_fn(struct kiocb *iocb, kiocb_cancel_fn *cancel) kiocb_set_cancel_fn() argument 526 struct aio_kiocb *req = container_of(iocb, struct aio_kiocb, common); kiocb_set_cancel_fn() 1048 * Called when the io request on the given iocb is complete. 1052 struct aio_kiocb *iocb = container_of(kiocb, struct aio_kiocb, common); aio_complete() local 1053 struct kioctx *ctx = iocb->ki_ctx; aio_complete() 1061 * - events go directly into the iocb for fast handling aio_complete() 1062 * - the sync task with the iocb in its stack holds the single iocb aio_complete() 1064 * - the sync task helpfully left a reference to itself in the iocb aio_complete() 1068 if (iocb->ki_list.next) { aio_complete() 1072 list_del(&iocb->ki_list); aio_complete() 1092 event->obj = (u64)(unsigned long)iocb->ki_user_iocb; aio_complete() 1093 event->data = iocb->ki_user_data; aio_complete() 1101 ctx, tail, iocb, iocb->ki_user_iocb, iocb->ki_user_data, aio_complete() 1122 pr_debug("added to ring %p at [%u]\n", iocb, tail); aio_complete() 1129 if (iocb->ki_eventfd != NULL) aio_complete() 1130 eventfd_signal(iocb->ki_eventfd, 1); aio_complete() 1133 kiocb_free(iocb); aio_complete() 1487 static int io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb, io_submit_one() argument 1488 struct iocb *iocb, bool compat) io_submit_one() 1494 if (unlikely(iocb->aio_reserved1 || iocb->aio_reserved2)) { io_submit_one() 1501 (iocb->aio_buf != (unsigned long)iocb->aio_buf) || io_submit_one() 1502 (iocb->aio_nbytes != (size_t)iocb->aio_nbytes) || io_submit_one() 1503 ((ssize_t)iocb->aio_nbytes < 0) io_submit_one() 1513 req->common.ki_filp = fget(iocb->aio_fildes); io_submit_one() 1518 req->common.ki_pos = iocb->aio_offset; io_submit_one() 1522 if (iocb->aio_flags & IOCB_FLAG_RESFD) { io_submit_one() 1529 req->ki_eventfd = eventfd_ctx_fdget((int) iocb->aio_resfd); io_submit_one() 1546 req->ki_user_data = iocb->aio_data; io_submit_one() 1548 ret = aio_run_iocb(&req->common, iocb->aio_lio_opcode, io_submit_one() 1549 (char __user *)(unsigned long)iocb->aio_buf, io_submit_one() 1550 iocb->aio_nbytes, io_submit_one() 1564 struct iocb __user *__user *iocbpp, bool compat) do_io_submit() 1593 struct iocb __user *user_iocb; do_io_submit() 1594 struct iocb tmp; do_io_submit() 1619 * specified by ctx_id is invalid, if nr is < 0, if the iocb at 1621 * is invalid for the file descriptor in the iocb. May fail with 1624 * iocb is invalid. May fail with -EAGAIN if insufficient resources 1629 struct iocb __user * __user *, iocbpp) SYSCALL_DEFINE3() 1635 * Finds a given iocb for cancellation. 1638 lookup_kiocb(struct kioctx *ctx, struct iocb __user *iocb, u32 key) lookup_kiocb() argument 1649 if (kiocb->ki_user_iocb == iocb) lookup_kiocb() 1656 * Attempts to cancel an iocb previously passed to io_submit. If 1662 * invalid. May fail with -EAGAIN if the iocb specified was not 1665 SYSCALL_DEFINE3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb, SYSCALL_DEFINE3() 1673 ret = get_user(key, &iocb->aio_key); SYSCALL_DEFINE3() 1683 kiocb = lookup_kiocb(ctx, iocb, key); SYSCALL_DEFINE3()
|
H A D | direct-io.c | 129 struct kiocb *iocb; /* kiocb */ member in struct:dio 254 dio->end_io(dio->iocb, offset, transferred, dio->private); dio_complete() 263 err = generic_write_sync(dio->iocb->ki_filp, offset, dio_complete() 269 dio->iocb->ki_complete(dio->iocb, ret, 0); dio_complete() 280 dio_complete(dio, dio->iocb->ki_pos, 0, true); dio_aio_complete_work() 309 dio_complete(dio, dio->iocb->ki_pos, 0, true); dio_bio_end_aio() 1098 do_blockdev_direct_IO(struct kiocb *iocb, struct inode *inode, do_blockdev_direct_IO() argument 1147 iocb->ki_filp->f_mapping; do_blockdev_direct_IO() 1178 if (is_sync_kiocb(iocb)) do_blockdev_direct_IO() 1194 ((iocb->ki_filp->f_flags & O_DSYNC) || do_blockdev_direct_IO() 1195 IS_SYNC(iocb->ki_filp->f_mapping->host))) { do_blockdev_direct_IO() 1224 dio->iocb = iocb; do_blockdev_direct_IO() 1312 ssize_t __blockdev_direct_IO(struct kiocb *iocb, struct inode *inode, __blockdev_direct_IO() argument 1330 return do_blockdev_direct_IO(iocb, inode, bdev, iter, offset, get_block, __blockdev_direct_IO()
|
H A D | block_dev.c | 149 blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t offset) blkdev_direct_IO() argument 151 struct file *file = iocb->ki_filp; blkdev_direct_IO() 154 return __blockdev_direct_IO(iocb, inode, I_BDEV(inode), iter, offset, blkdev_direct_IO() 1603 ssize_t blkdev_write_iter(struct kiocb *iocb, struct iov_iter *from) blkdev_write_iter() argument 1605 struct file *file = iocb->ki_filp; blkdev_write_iter() 1617 if (iocb->ki_pos >= size) blkdev_write_iter() 1620 iov_iter_truncate(from, size - iocb->ki_pos); blkdev_write_iter() 1623 ret = __generic_file_write_iter(iocb, from); blkdev_write_iter() 1626 err = generic_write_sync(file, iocb->ki_pos - ret, ret); blkdev_write_iter() 1635 ssize_t blkdev_read_iter(struct kiocb *iocb, struct iov_iter *to) blkdev_read_iter() argument 1637 struct file *file = iocb->ki_filp; blkdev_read_iter() 1640 loff_t pos = iocb->ki_pos; blkdev_read_iter() 1647 return generic_file_read_iter(iocb, to); blkdev_read_iter()
|
H A D | dax.c | 176 * @iocb: The control block for this I/O 191 ssize_t dax_do_io(struct kiocb *iocb, struct inode *inode, dax_do_io() argument 220 end_io(iocb, pos, retval, bh.b_private); dax_do_io()
|
H A D | pipe.c | 229 pipe_read(struct kiocb *iocb, struct iov_iter *to) pipe_read() argument 232 struct file *filp = iocb->ki_filp; pipe_read() 338 pipe_write(struct kiocb *iocb, struct iov_iter *from) pipe_write() argument 340 struct file *filp = iocb->ki_filp; pipe_write()
|
H A D | compat.c | 620 copy_iocb(long nr, u32 __user *ptr32, struct iocb __user * __user *ptr64) copy_iocb() 634 #define MAX_AIO_SUBMITS (PAGE_SIZE/sizeof(struct iocb *)) 637 int, nr, u32 __user *, iocb) COMPAT_SYSCALL_DEFINE3() 639 struct iocb __user * __user *iocb64; COMPAT_SYSCALL_DEFINE3() 649 ret = copy_iocb(nr, iocb, iocb64); COMPAT_SYSCALL_DEFINE3()
|
/linux-4.1.27/fs/ceph/ |
H A D | file.c | 433 static ssize_t ceph_sync_read(struct kiocb *iocb, struct iov_iter *i, ceph_sync_read() argument 436 struct file *file = iocb->ki_filp; ceph_sync_read() 439 u64 off = iocb->ki_pos; ceph_sync_read() 460 if (iocb->ki_flags & IOCB_DIRECT) { ceph_sync_read() 510 if (off > iocb->ki_pos) { ceph_sync_read() 511 ret = off - iocb->ki_pos; ceph_sync_read() 512 iocb->ki_pos = off; ceph_sync_read() 560 ceph_sync_direct_write(struct kiocb *iocb, struct iov_iter *from, loff_t pos) ceph_sync_direct_write() argument 562 struct file *file = iocb->ki_filp; ceph_sync_direct_write() 662 iocb->ki_pos = pos; ceph_sync_direct_write() 677 ceph_sync_write(struct kiocb *iocb, struct iov_iter *from, loff_t pos) ceph_sync_write() argument 679 struct file *file = iocb->ki_filp; ceph_sync_write() 794 iocb->ki_pos = pos; ceph_sync_write() 806 static ssize_t ceph_read_iter(struct kiocb *iocb, struct iov_iter *to) ceph_read_iter() argument 808 struct file *filp = iocb->ki_filp; ceph_read_iter() 820 inode, ceph_vinop(inode), iocb->ki_pos, (unsigned)len, inode); ceph_read_iter() 831 (iocb->ki_flags & IOCB_DIRECT) || ceph_read_iter() 835 inode, ceph_vinop(inode), iocb->ki_pos, (unsigned)len, ceph_read_iter() 840 ret = ceph_sync_read(iocb, to, &retry_op); ceph_read_iter() 846 inode, ceph_vinop(inode), iocb->ki_pos, (unsigned)len, ceph_read_iter() 849 ret = generic_file_read_iter(iocb, to); ceph_read_iter() 882 if (iocb->ki_pos < i_size && ceph_read_iter() 883 iocb->ki_pos < PAGE_CACHE_SIZE) { ceph_read_iter() 885 iocb->ki_pos + len); ceph_read_iter() 890 iocb->ki_pos & ~PAGE_MASK, ceph_read_iter() 891 end - iocb->ki_pos, to); ceph_read_iter() 892 iocb->ki_pos += ret; ceph_read_iter() 895 if (iocb->ki_pos < i_size && read < len) { ceph_read_iter() 897 i_size - iocb->ki_pos); ceph_read_iter() 899 iocb->ki_pos += ret; ceph_read_iter() 907 if (retry_op == CHECK_EOF && iocb->ki_pos < i_size && ceph_read_iter() 910 ", reading more\n", iocb->ki_pos, ceph_read_iter() 936 static ssize_t ceph_write_iter(struct kiocb *iocb, struct iov_iter *from) ceph_write_iter() argument 938 struct file *file = iocb->ki_filp; ceph_write_iter() 956 err = generic_write_checks(iocb, from); ceph_write_iter() 960 pos = iocb->ki_pos; ceph_write_iter() 998 (iocb->ki_flags & IOCB_DIRECT) || (fi->flags & CEPH_F_SYNC)) { ceph_write_iter() 1003 if (iocb->ki_flags & IOCB_DIRECT) ceph_write_iter() 1004 written = ceph_sync_direct_write(iocb, &data, pos); ceph_write_iter() 1006 written = ceph_sync_write(iocb, &data, pos); ceph_write_iter() 1028 iocb->ki_pos = pos + written; ceph_write_iter()
|
H A D | addr.c | 1205 static ssize_t ceph_direct_io(struct kiocb *iocb, struct iov_iter *iter, ceph_direct_io() argument
|
/linux-4.1.27/fs/coda/ |
H A D | file.c | 30 coda_file_read_iter(struct kiocb *iocb, struct iov_iter *to) coda_file_read_iter() argument 32 struct file *coda_file = iocb->ki_filp; coda_file_read_iter() 37 return vfs_iter_read(cfi->cfi_container, to, &iocb->ki_pos); coda_file_read_iter() 62 coda_file_write_iter(struct kiocb *iocb, struct iov_iter *to) coda_file_write_iter() argument 64 struct file *coda_file = iocb->ki_filp; coda_file_write_iter() 75 ret = vfs_iter_write(cfi->cfi_container, to, &iocb->ki_pos); coda_file_write_iter()
|
/linux-4.1.27/fs/nfs/ |
H A D | direct.c | 79 struct kiocb * iocb; /* controlling i/o request */ member in struct:nfs_direct_req 246 * @iocb: target I/O control block 256 ssize_t nfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t pos) nfs_direct_IO() argument 258 struct inode *inode = iocb->ki_filp->f_mapping->host; nfs_direct_IO() 267 return nfs_file_direct_read(iocb, iter, pos); nfs_direct_IO() 268 return nfs_file_direct_write(iocb, iter); nfs_direct_IO() 351 if (dreq->iocb) nfs_direct_wait() 366 * Synchronous I/O uses a stack-allocated iocb. Thus we can't trust 367 * the iocb is still valid here if this is a synchronous request. 373 if (dreq->iocb && write) { nfs_direct_complete() 374 loff_t pos = dreq->iocb->ki_pos + dreq->count; nfs_direct_complete() 387 if (dreq->iocb) { nfs_direct_complete() 391 dreq->iocb->ki_complete(dreq->iocb, res, 0); nfs_direct_complete() 549 * @iocb: target I/O control block 567 ssize_t nfs_file_direct_read(struct kiocb *iocb, struct iov_iter *iter, nfs_file_direct_read() argument 570 struct file *file = iocb->ki_filp; nfs_file_direct_read() 601 dreq->ctx = get_nfs_open_context(nfs_file_open_context(iocb->ki_filp)); nfs_file_direct_read() 608 if (!is_sync_kiocb(iocb)) nfs_file_direct_read() 609 dreq->iocb = iocb; nfs_file_direct_read() 619 iocb->ki_pos = pos + result; nfs_file_direct_read() 939 * @iocb: target I/O control block 958 ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter) nfs_file_direct_write() argument 961 struct file *file = iocb->ki_filp; nfs_file_direct_write() 969 file, iov_iter_count(iter), (long long) iocb->ki_pos); nfs_file_direct_write() 974 pos = iocb->ki_pos; nfs_file_direct_write() 1000 dreq->ctx = get_nfs_open_context(nfs_file_open_context(iocb->ki_filp)); nfs_file_direct_write() 1007 if (!is_sync_kiocb(iocb)) nfs_file_direct_write() 1008 dreq->iocb = iocb; nfs_file_direct_write() 1024 iocb->ki_pos = pos + result; nfs_file_direct_write() 1026 if (i_size_read(inode) < iocb->ki_pos) nfs_file_direct_write() 1027 i_size_write(inode, iocb->ki_pos); nfs_file_direct_write()
|
H A D | file.c | 168 nfs_file_read(struct kiocb *iocb, struct iov_iter *to) nfs_file_read() argument 170 struct inode *inode = file_inode(iocb->ki_filp); nfs_file_read() 173 if (iocb->ki_flags & IOCB_DIRECT) nfs_file_read() 174 return nfs_file_direct_read(iocb, to, iocb->ki_pos); nfs_file_read() 177 iocb->ki_filp, nfs_file_read() 178 iov_iter_count(to), (unsigned long) iocb->ki_pos); nfs_file_read() 180 result = nfs_revalidate_mapping_protected(inode, iocb->ki_filp->f_mapping); nfs_file_read() 182 result = generic_file_read_iter(iocb, to); nfs_file_read() 671 ssize_t nfs_file_write(struct kiocb *iocb, struct iov_iter *from) nfs_file_write() argument 673 struct file *file = iocb->ki_filp; nfs_file_write() 683 if (iocb->ki_flags & IOCB_DIRECT) { nfs_file_write() 684 result = generic_write_checks(iocb, from); nfs_file_write() 687 return nfs_file_direct_write(iocb, from); nfs_file_write() 691 file, count, (long long) iocb->ki_pos); nfs_file_write() 699 if (iocb->ki_flags & IOCB_APPEND) { nfs_file_write() 709 result = generic_file_write_iter(iocb, from); nfs_file_write()
|
/linux-4.1.27/drivers/scsi/lpfc/ |
H A D | lpfc_sli.c | 80 return &iocbq->iocb; lpfc_get_iocb_from_iocbq() 531 * lpfc_cmd_iocb - Get next command iocb entry in the ring 535 * This function returns pointer to next command iocb entry 537 * other threads consume the next command iocb. 548 * lpfc_resp_iocb - Get next response iocb entry in the ring 552 * This function returns pointer to next response iocb entry 554 * that no other thread consume the next response iocb. 565 * __lpfc_sli_get_iocbq - Allocates an iocb object from iocb pool 569 * allocates a new driver iocb object from the iocb pool. If the 571 * allocated iocb object else it returns NULL. 898 * __lpfc_sli_get_sglq - Allocates an iocb object from sgl pool 920 } else if ((piocbq->iocb.ulpCommand == CMD_GEN_REQUEST64_CR) && __lpfc_sli_get_sglq() 960 * lpfc_sli_get_iocbq - Allocates an iocb object from iocb pool 964 * allocates a new driver iocb object from the iocb pool. If the 966 * allocated iocb object else it returns NULL. 981 * __lpfc_sli_release_iocbq_s4 - Release iocb to the iocb pool 983 * @iocbq: Pointer to driver iocb object. 986 * iocb object to the iocb pool. The iotag in the iocb object 987 * does not change for each use of the iocb object. This function 988 * clears all other fields of the iocb object when it is freed. 1002 size_t start_clean = offsetof(struct lpfc_iocbq, iocb); __lpfc_sli_release_iocbq_s4() 1047 * __lpfc_sli_release_iocbq_s3 - Release iocb to the iocb pool 1049 * @iocbq: Pointer to driver iocb object. 1052 * iocb object to the iocb pool. The iotag in the iocb object 1053 * does not change for each use of the iocb object. This function 1054 * clears all other fields of the iocb object when it is freed. 1059 size_t start_clean = offsetof(struct lpfc_iocbq, iocb); __lpfc_sli_release_iocbq_s3() 1071 * __lpfc_sli_release_iocbq - Release iocb to the iocb pool 1073 * @iocbq: Pointer to driver iocb object. 1076 * iocb object to the iocb pool. The iotag in the iocb object 1077 * does not change for each use of the iocb object. This function 1078 * clears all other fields of the iocb object when it is freed. 1088 * lpfc_sli_release_iocbq - Release iocb to the iocb pool 1090 * @iocbq: Pointer to driver iocb object. 1092 * This function is called with no lock held to release the iocb to 1093 * iocb pool. 1131 piocb->iocb.ulpStatus = ulpstatus; lpfc_sli_cancel_iocbs() 1132 piocb->iocb.un.ulpWord[4] = ulpWord4; lpfc_sli_cancel_iocbs() 1140 * lpfc_sli_iocb_cmd_type - Get the iocb type 1141 * @iocb_cmnd: iocb command code. 1143 * This function is called by ring event handler function to get the iocb type. 1144 * This function translates the iocb command to an iocb command type used to 1147 * LPFC_UNKNOWN_IOCB if it is an unsupported iocb 1148 * LPFC_SOL_IOCB if it is a solicited iocb completion 1149 * LPFC_ABORT_IOCB if it is an abort iocb 1150 * LPFC_UNSOL_IOCB if it is an unsolicited iocb 1298 * lpfc_sli_ringtxcmpl_put - Adds new iocb to the txcmplq 1301 * @piocb: Pointer to the driver iocb object. 1304 * new iocb to txcmplq of the given ring. This function always returns 1317 (piocb->iocb.ulpCommand != CMD_ABORT_XRI_CN) && lpfc_sli_ringtxcmpl_put() 1318 (piocb->iocb.ulpCommand != CMD_CLOSE_XRI_CN) && lpfc_sli_ringtxcmpl_put() 1338 * iocb in txq of the given ring. If there is any iocb in 1339 * the txq, the function returns first iocb in the list after 1340 * removing the iocb from the list, else it returns NULL. 1352 * lpfc_sli_next_iocb_slot - Get next iocb slot in the ring 1357 * iocb without releasing the lock. If the caller releases the lock, 1358 * iocb slot returned by the function is not guaranteed to be available. 1359 * The function returns pointer to the next available iocb slot if there 1408 * lpfc_sli_next_iotag - Get an iotag for the iocb 1410 * @iocbq: Pointer to driver iocb object. 1412 * This function gets an iotag for the iocb. If there is no unused iotag and 1483 * lpfc_sli_submit_iocb - Submit an iocb to the firmware 1486 * @iocb: Pointer to iocb slot in the ring. 1487 * @nextiocb: Pointer to driver iocb object which need to be 1490 * This function is called with hbalock held to post a new iocb to 1491 * the firmware. This function copies the new iocb to ring iocb slot and 1492 * updates the ring pointers. It adds the new iocb to txcmplq if there is 1493 * a completion call back for this iocb else the function will free the 1494 * iocb object. 1498 IOCB_t *iocb, struct lpfc_iocbq *nextiocb) lpfc_sli_submit_iocb() 1503 nextiocb->iocb.ulpIoTag = (nextiocb->iocb_cmpl) ? nextiocb->iotag : 0; lpfc_sli_submit_iocb() 1509 *(((uint32_t *) &nextiocb->iocb) + 4), lpfc_sli_submit_iocb() 1510 *(((uint32_t *) &nextiocb->iocb) + 6), lpfc_sli_submit_iocb() 1511 *(((uint32_t *) &nextiocb->iocb) + 7)); lpfc_sli_submit_iocb() 1515 * Issue iocb command to adapter lpfc_sli_submit_iocb() 1517 lpfc_sli_pcimem_bcopy(&nextiocb->iocb, iocb, phba->iocb_cmd_size); lpfc_sli_submit_iocb() 1606 IOCB_t *iocb; lpfc_sli_resume_iocb() local 1622 while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) && lpfc_sli_resume_iocb() 1624 lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb); lpfc_sli_resume_iocb() 1626 if (iocb) lpfc_sli_resume_iocb() 2460 * lpfc_sli_process_unsol_iocb - Unsolicited iocb handler 2463 * @saveq: Pointer to the unsolicited iocb. 2466 * when there is an unsolicited iocb posted to the response ring by the 2470 * When the function returns 1 the caller can free the iocb object otherwise 2471 * upper layer functions will free the iocb objects. 2483 irsp = &(saveq->iocb); lpfc_sli_process_unsol_iocb() 2493 "ASYNC_STATUS iocb received evt_code " lpfc_sli_process_unsol_iocb() 2532 "an unsolicited iocb. tag 0x%x\n", lpfc_sli_process_unsol_iocb() 2544 " unsolicited iocb. tag 0x%x\n", lpfc_sli_process_unsol_iocb() 2549 irsp = &(iocbq->iocb); lpfc_sli_process_unsol_iocb() 2558 "buffer for an unsolicited iocb" lpfc_sli_process_unsol_iocb() 2571 "iocb. tag 0x%x\n", lpfc_sli_process_unsol_iocb() 2584 if (iocbq->iocb.unsli3.rcvsli3.ox_id == lpfc_sli_process_unsol_iocb() 2585 saveq->iocb.unsli3.rcvsli3.ox_id) { lpfc_sli_process_unsol_iocb() 2594 if (saveq->iocb.ulpStatus != IOSTAT_INTERMED_RSP) { lpfc_sli_process_unsol_iocb() 2597 irsp = &(saveq->iocb); lpfc_sli_process_unsol_iocb() 2607 w5p = (WORD5 *)&(saveq->iocb.un.ulpWord[5]); lpfc_sli_process_unsol_iocb() 2632 * lpfc_sli_iocbq_lookup - Find command iocb for the given response iocb 2635 * @prspiocb: Pointer to response iocb object. 2637 * This function looks up the iocb_lookup table to get the command iocb 2638 * corresponding to the given response iocb using the iotag of the 2639 * response iocb. This function is called with the hbalock held. 2640 * This function returns the command iocb object if it finds the command 2641 * iocb else returns NULL. 2651 iotag = prspiocb->iocb.ulpIoTag; lpfc_sli_iocbq_lookup() 2666 *(((uint32_t *) &prspiocb->iocb) + 7)); lpfc_sli_iocbq_lookup() 2671 * lpfc_sli_iocbq_lookup_by_tag - Find command iocb for the iotag 2676 * This function looks up the iocb_lookup table to get the command iocb 2679 * This function returns the command iocb object if it finds the command 2680 * iocb else returns NULL. 2704 * lpfc_sli_process_sol_iocb - process solicited iocb completion 2707 * @saveq: Pointer to the response iocb to be processed. 2710 * rings when there is a new response iocb in the response ring. 2712 * gets the command iocb associated with the response iocb and 2713 * calls the completion handler for the command iocb. If there 2715 * associated with command iocb. If the response iocb is for 2716 * an already aborted command iocb, the status of the completion 2739 if (saveq->iocb.ulpStatus && lpfc_sli_process_sol_iocb() 2741 (cmdiocbp->iocb.ulpCommand == lpfc_sli_process_sol_iocb() 2760 saveq->iocb.ulpStatus = lpfc_sli_process_sol_iocb() 2762 saveq->iocb.un.ulpWord[4] = lpfc_sli_process_sol_iocb() 2804 cmdiocbp->iocb.ulpStatus = lpfc_sli_process_sol_iocb() 2806 cmdiocbp->iocb.un.ulpWord[4] = lpfc_sli_process_sol_iocb() 2814 saveq->iocb.ulpStatus = lpfc_sli_process_sol_iocb() 2816 saveq->iocb.un.ulpWord[4] = lpfc_sli_process_sol_iocb() 2846 saveq->iocb.ulpIoTag, lpfc_sli_process_sol_iocb() 2847 saveq->iocb.ulpStatus, lpfc_sli_process_sol_iocb() 2848 saveq->iocb.un.ulpWord[4], lpfc_sli_process_sol_iocb() 2849 saveq->iocb.ulpCommand, lpfc_sli_process_sol_iocb() 2850 saveq->iocb.ulpContext); lpfc_sli_process_sol_iocb() 2862 * This function is called from the iocb ring event handlers when 2951 * The function processes each response iocb in the response ring until it 2952 * finds an iocb with LE bit set and chains all the iocbs up to the iocb with 2953 * LE bit set. The function will call the completion handler of the command iocb 2954 * if the response iocb indicates a completion for a command iocb or it is 2956 * function if this is an unsolicited iocb. 3010 (uint32_t *) &rspiocbq.iocb, lpfc_sli_handle_fast_ring_event() 3013 irsp = &rspiocbq.iocb; lpfc_sli_handle_fast_ring_event() 3051 * Idle exchange closed via ABTS from port. No iocb lpfc_sli_handle_fast_ring_event() 3141 * lpfc_sli_sp_handle_rspiocb - Handle slow-path response iocb 3148 * seeing the iocb with the LE bit set. The function will call 3149 * lpfc_sli_process_sol_iocb function if the response iocb indicates a 3150 * completion of a command iocb. The function will call the 3151 * lpfc_sli_process_unsol_iocb function if this is an unsolicited iocb. 3153 * iocb is an abort completion. The function returns NULL when the response 3154 * iocb has the LE bit set and all the chained iocbs are processed, otherwise 3155 * this function shall chain the iocb on to the iocb_continueq and return the 3156 * response iocb passed in. 3173 /* First add the response iocb to the countinueq list */ lpfc_sli_sp_handle_rspiocb() 3178 irsp = &rspiocbp->iocb; lpfc_sli_sp_handle_rspiocb() 3182 * associated with this iocb completion. lpfc_sli_sp_handle_rspiocb() 3187 irsp = &(saveq->iocb); lpfc_sli_sp_handle_rspiocb() 3337 * remove each response iocb in the response ring and calls the handle 3338 * response iocb routine (lpfc_sli_sp_handle_rspiocb) to process it. 3385 * The process is to get the next available response iocb, get lpfc_sli_handle_slow_ring_event_s3() 3386 * a free iocb from the list, copy the response data into the lpfc_sli_handle_slow_ring_event_s3() 3387 * free iocb, insert to the continuation list, and update the lpfc_sli_handle_slow_ring_event_s3() 3389 * iocb's in the ring available to DMA as fast as possible but lpfc_sli_handle_slow_ring_event_s3() 3390 * pays a penalty for a copy operation. Since the iocb is lpfc_sli_handle_slow_ring_event_s3() 3406 lpfc_sli_pcimem_bcopy(entry, &rspiocbp->iocb, lpfc_sli_handle_slow_ring_event_s3() 3408 irsp = &rspiocbp->iocb; lpfc_sli_handle_slow_ring_event_s3() 3471 * ELS response iocb on the driver internal slow-path response iocb worker 3473 * response iocb from the response worker queue and calls the handle 3474 * response iocb routine (lpfc_sli_sp_handle_rspiocb) to process it. 3489 /* Get the response iocb from the head of work queue */ lpfc_sli_handle_slow_ring_event_s4() 3523 * This function aborts all iocbs in the given ring and frees all the iocb 3524 * objects in txq. This function issues an abort iocb for all the iocb commands 3532 struct lpfc_iocbq *iocb, *next_iocb; lpfc_sli_abort_iocb_ring() local 3549 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) lpfc_sli_abort_iocb_ring() 3550 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_sli_abort_iocb_ring() 3558 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) lpfc_sli_abort_iocb_ring() 3559 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_sli_abort_iocb_ring() 3573 * This function aborts all iocbs in FCP rings and frees all the iocb 3574 * objects in txq. This function issues an abort iocb for all the iocb commands 3602 * This function flushes all iocbs in the fcp ring and frees all the iocb 3604 * for all the iocb commands in txcmplq, they will just be returned with 3991 * register. After the HBA resets, this function resets all the iocb ring 4626 * the SLI, setup iocb rings and HBQ rings. In the end the function 6937 /* If HBA has a deferred error attention, fail the iocb. */ lpfc_sli_issue_mbox_s3() 7851 * __lpfc_sli_ringtx_put - Add an iocb to the txq 7854 * @piocb: Pointer to address of newly added command iocb. 7857 * iocb to the txq when SLI layer cannot submit the command iocb 7864 /* Insert the caller's iocb in the txq tail for later processing. */ __lpfc_sli_ringtx_put() 7869 * lpfc_sli_next_iocb - Get the next iocb in the txq 7872 * @piocb: Pointer to address of newly added command iocb. 7875 * iocb is submitted to the firmware. This function checks 7881 * If there is no iocb in the txq then the function will return 7903 * @ring_number: SLI ring number to issue iocb on. 7904 * @piocb: Pointer to command iocb. 7908 * an iocb command to an HBA with SLI-3 interface spec. If the PCI slot is 7914 * processing new iocb. If there is no slot available in the ring and 7915 * flag & SLI_IOCB_RET_IOCB is set, the new iocb is added to the txq, otherwise 7919 * after it successfully submit the iocb to firmware or after adding to the 7927 IOCB_t *iocb; __lpfc_sli_issue_iocb_s3() local 7931 (piocb->iocb.ulpCommand != CMD_ABORT_XRI_CN) && __lpfc_sli_issue_iocb_s3() 7932 (piocb->iocb.ulpCommand != CMD_CLOSE_XRI_CN)) { __lpfc_sli_issue_iocb_s3() 7936 piocb->iocb.ulpCommand); __lpfc_sli_issue_iocb_s3() 7946 /* If HBA has a deferred error attention, fail the iocb. */ __lpfc_sli_issue_iocb_s3() 7968 switch (piocb->iocb.ulpCommand) { __lpfc_sli_issue_iocb_s3() 7972 (piocb->iocb.un.genreq64.w5.hcsw.Rctl != __lpfc_sli_issue_iocb_s3() 7974 (piocb->iocb.un.genreq64.w5.hcsw.Type != __lpfc_sli_issue_iocb_s3() 8005 while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) && __lpfc_sli_issue_iocb_s3() 8007 lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb); __lpfc_sli_issue_iocb_s3() 8009 if (iocb) __lpfc_sli_issue_iocb_s3() 8035 * @piocb: Pointer to command iocb. 8068 icmd = &piocbq->iocb; lpfc_sli4_bpl2sgl() 8106 if (piocbq->iocb.ulpCommand == CMD_GEN_REQUEST64_CR) { lpfc_sli4_bpl2sgl() 8173 * @piocb: Pointer to command iocb. 8176 * This routine converts the iocb command to its Work Queue Entry 8215 memcpy(wqe, &iocbq->iocb, sizeof(union lpfc_wqe)); lpfc_sli4_iocb2wqe() 8221 if (iocbq->iocb.un.genreq64.bdl.bdeFlags == BUFF_TYPE_BLP_64) { lpfc_sli4_iocb2wqe() 8222 numBdes = iocbq->iocb.un.genreq64.bdl.bdeSize / lpfc_sli4_iocb2wqe() 8243 xmit_len = iocbq->iocb.un.fcpi64.bdl.bdeSize; lpfc_sli4_iocb2wqe() 8245 iocbq->iocb.ulpIoTag = iocbq->iotag; lpfc_sli4_iocb2wqe() 8246 cmnd = iocbq->iocb.ulpCommand; lpfc_sli4_iocb2wqe() 8248 switch (iocbq->iocb.ulpCommand) { lpfc_sli4_iocb2wqe() 8254 if (!iocbq->iocb.ulpLe) { lpfc_sli4_iocb2wqe() 8258 iocbq->iocb.ulpCommand); lpfc_sli4_iocb2wqe() 8265 iocbq->iocb.ulpTimeout); lpfc_sli4_iocb2wqe() 8270 ct = ((iocbq->iocb.ulpCt_h << 1) | iocbq->iocb.ulpCt_l); lpfc_sli4_iocb2wqe() 8272 iocbq->iocb.ulpContext); lpfc_sli4_iocb2wqe() 8317 iocbq->iocb.un.ulpWord[3]); lpfc_sli4_iocb2wqe() 8319 iocbq->iocb.unsli3.rcvsli3.ox_id); lpfc_sli4_iocb2wqe() 8326 /* word3 iocb=io_tag32 wqe=reserved */ lpfc_sli4_iocb2wqe() 8341 /* word3 iocb=iotag32 wqe=seq_payload_len */ lpfc_sli4_iocb2wqe() 8343 /* word4 iocb=rsvd wqe=rsvd */ lpfc_sli4_iocb2wqe() 8344 /* word5 iocb=rctl/type/df_ctl wqe=rctl/type/df_ctl memcpy */ lpfc_sli4_iocb2wqe() 8345 /* word6 iocb=ctxt_tag/io_tag wqe=ctxt_tag/xri */ lpfc_sli4_iocb2wqe() 8347 ((iocbq->iocb.ulpCt_h << 1) | iocbq->iocb.ulpCt_l)); lpfc_sli4_iocb2wqe() 8356 /* word3 iocb=iotag wqe=payload_offset_len */ lpfc_sli4_iocb2wqe() 8362 /* word4 iocb=parameter wqe=total_xfer_length memcpy */ lpfc_sli4_iocb2wqe() 8363 /* word5 iocb=initial_xfer_len wqe=initial_xfer_len memcpy */ lpfc_sli4_iocb2wqe() 8365 iocbq->iocb.ulpFCP2Rcvy); lpfc_sli4_iocb2wqe() 8366 bf_set(wqe_lnk, &wqe->fcp_iwrite.wqe_com, iocbq->iocb.ulpXS); lpfc_sli4_iocb2wqe() 8373 bf_set(wqe_pu, &wqe->fcp_iwrite.wqe_com, iocbq->iocb.ulpPU); lpfc_sli4_iocb2wqe() 8385 /* word3 iocb=iotag wqe=payload_offset_len */ lpfc_sli4_iocb2wqe() 8391 /* word4 iocb=parameter wqe=total_xfer_length memcpy */ lpfc_sli4_iocb2wqe() 8392 /* word5 iocb=initial_xfer_len wqe=initial_xfer_len memcpy */ lpfc_sli4_iocb2wqe() 8394 iocbq->iocb.ulpFCP2Rcvy); lpfc_sli4_iocb2wqe() 8395 bf_set(wqe_lnk, &wqe->fcp_iread.wqe_com, iocbq->iocb.ulpXS); lpfc_sli4_iocb2wqe() 8402 bf_set(wqe_pu, &wqe->fcp_iread.wqe_com, iocbq->iocb.ulpPU); lpfc_sli4_iocb2wqe() 8414 /* word3 iocb=iotag wqe=payload_offset_len */ lpfc_sli4_iocb2wqe() 8420 /* word3 iocb=IO_TAG wqe=reserved */ lpfc_sli4_iocb2wqe() 8431 iocbq->iocb.ulpFCP2Rcvy); lpfc_sli4_iocb2wqe() 8446 numBdes = iocbq->iocb.un.genreq64.bdl.bdeSize / lpfc_sli4_iocb2wqe() 8454 /* word3 iocb=IO_TAG wqe=request_payload_len */ lpfc_sli4_iocb2wqe() 8456 /* word4 iocb=parameter wqe=relative_offset memcpy */ lpfc_sli4_iocb2wqe() 8459 if (iocbq->iocb.ulpCt_h || iocbq->iocb.ulpCt_l) { lpfc_sli4_iocb2wqe() 8460 ct = ((iocbq->iocb.ulpCt_h << 1) | iocbq->iocb.ulpCt_l); lpfc_sli4_iocb2wqe() 8463 ct, iocbq->iocb.ulpCommand); lpfc_sli4_iocb2wqe() 8467 bf_set(wqe_tmo, &wqe->gen_req.wqe_com, iocbq->iocb.ulpTimeout); lpfc_sli4_iocb2wqe() 8468 bf_set(wqe_pu, &wqe->gen_req.wqe_com, iocbq->iocb.ulpPU); lpfc_sli4_iocb2wqe() 8480 /* word3 iocb=iotag32 wqe=response_payload_len */ lpfc_sli4_iocb2wqe() 8484 /* word5 iocb=rsvd wge=did */ lpfc_sli4_iocb2wqe() 8486 iocbq->iocb.un.xseq64.xmit_els_remoteID); lpfc_sli4_iocb2wqe() 8502 ((iocbq->iocb.ulpCt_h << 1) | iocbq->iocb.ulpCt_l)); lpfc_sli4_iocb2wqe() 8503 bf_set(wqe_pu, &wqe->xmit_els_rsp.wqe_com, iocbq->iocb.ulpPU); lpfc_sli4_iocb2wqe() 8505 iocbq->iocb.unsli3.rcvsli3.ox_id); lpfc_sli4_iocb2wqe() 8506 if (!iocbq->iocb.ulpCt_h && iocbq->iocb.ulpCt_l) lpfc_sli4_iocb2wqe() 8534 abrt_iotag = iocbq->iocb.un.acxri.abortContextTag; lpfc_sli4_iocb2wqe() 8541 if ((iocbq->iocb.ulpCommand == CMD_CLOSE_XRI_CN) || fip) lpfc_sli4_iocb2wqe() 8551 /* word5 iocb=CONTEXT_TAG|IO_TAG wqe=reserved */ lpfc_sli4_iocb2wqe() 8554 ((iocbq->iocb.ulpCt_h << 1) | iocbq->iocb.ulpCt_l)); lpfc_sli4_iocb2wqe() 8555 abort_tag = iocbq->iocb.un.acxri.abortIoTag; lpfc_sli4_iocb2wqe() 8577 bf_get(lpfc_abts_oxid, &iocbq->iocb.un.bls_rsp)); lpfc_sli4_iocb2wqe() 8578 if (bf_get(lpfc_abts_orig, &iocbq->iocb.un.bls_rsp) == lpfc_sli4_iocb2wqe() 8592 bf_get(lpfc_abts_rxid, &iocbq->iocb.un.bls_rsp)); lpfc_sli4_iocb2wqe() 8601 iocbq->iocb.ulpContext); lpfc_sli4_iocb2wqe() 8610 if (iocbq->iocb.un.xseq64.w5.hcsw.Rctl == FC_RCTL_BA_RJT) { lpfc_sli4_iocb2wqe() 8612 bf_get(lpfc_vndr_code, &iocbq->iocb.un.bls_rsp)); lpfc_sli4_iocb2wqe() 8614 bf_get(lpfc_rsn_expln, &iocbq->iocb.un.bls_rsp)); lpfc_sli4_iocb2wqe() 8616 bf_get(lpfc_rsn_code, &iocbq->iocb.un.bls_rsp)); lpfc_sli4_iocb2wqe() 8629 iocbq->iocb.ulpCommand); lpfc_sli4_iocb2wqe() 8647 bf_set(wqe_class, &wqe->generic.wqe_com, iocbq->iocb.ulpClass); lpfc_sli4_iocb2wqe() 8655 * @ring_number: SLI ring number to issue iocb on. 8656 * @piocb: Pointer to command iocb. 8660 * an iocb command to an HBA with SLI-4 interface spec. 8663 * after it successfully submit the iocb to firmware or after adding to the 8676 if (piocb->iocb.ulpCommand == CMD_ABORT_XRI_CN || __lpfc_sli_issue_iocb_s4() 8677 piocb->iocb.ulpCommand == CMD_CLOSE_XRI_CN) __lpfc_sli_issue_iocb_s4() 8745 * __lpfc_sli_issue_iocb - Wrapper func of lockless version for issuing iocb 8830 * @piocb: Pointer to command iocb. 8916 /* Adjust cmd/rsp ring iocb entries more evenly */ lpfc_extra_ring_setup() 8945 * @iocbq: Pointer to iocb object. 8964 vpi = iocbq->iocb.un.asyncstat.sub_ctxt_tag; lpfc_sli_abts_err_handler() 8965 rpi = iocbq->iocb.ulpContext; lpfc_sli_abts_err_handler() 8970 vpi, rpi, iocbq->iocb.ulpStatus); lpfc_sli_abts_err_handler() 8979 if (iocbq->iocb.ulpStatus == IOSTAT_LOCAL_REJECT) lpfc_sli_abts_err_handler() 8987 iocbq->iocb.ulpContext, iocbq->iocb.ulpStatus, lpfc_sli_abts_err_handler() 9037 * lpfc_sli_async_event_handler - ASYNC iocb handler function 9040 * @iocbq: Pointer to iocb object. 9043 * function when there is an ASYNC event iocb in the ring. 9059 icmd = &iocbq->iocb; lpfc_sli_async_event_handler() 9243 * lpfc_sli_queue_setup sets up mailbox queues and iocb queues for each 9338 * - Send abort for all iocb commands associated with this 9350 struct lpfc_iocbq *iocb, *next_iocb; lpfc_sli_host_down() local 9371 list_for_each_entry_safe(iocb, next_iocb, &pring->txq, list) { lpfc_sli_host_down() 9372 if (iocb->vport != vport) lpfc_sli_host_down() 9374 list_move_tail(&iocb->list, &completions); lpfc_sli_host_down() 9378 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, lpfc_sli_host_down() 9380 if (iocb->vport != vport) lpfc_sli_host_down() 9382 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_sli_host_down() 9400 * This function cleans up all iocb, buffers, mailbox commands 9406 * - Iterate through the iocb txq and free each entry 9558 * allocates a tag for buffer posted using CMD_QUE_XRI64_CX iocb. The 9584 * Buffers posted using CMD_QUE_XRI64_CX iocb are in pring->postbufq 9586 * iocb is posted to the response ring with the tag of the buffer. 9589 * iocb. If the buffer is found then lpfc_dmabuf object of the 9667 * @cmdiocb: Pointer to driver command iocb object. 9668 * @rspiocb: Pointer to driver response iocb object. 9673 * associated with the abort iocb. 9679 IOCB_t *irsp = &rspiocb->iocb; lpfc_sli_abort_els_cmpl() 9687 * will return the iocb. Just Log the message. lpfc_sli_abort_els_cmpl() 9689 abort_context = cmdiocb->iocb.un.acxri.abortContextTag; lpfc_sli_abort_els_cmpl() 9690 abort_iotag = cmdiocb->iocb.un.acxri.abortIoTag; lpfc_sli_abort_els_cmpl() 9700 * so the abort routine puts the iotag of the iocb lpfc_sli_abort_els_cmpl() 9707 "0327 Cannot abort els iocb %p " lpfc_sli_abort_els_cmpl() 9722 * @cmdiocb: Pointer to driver command iocb object. 9723 * @rspiocb: Pointer to driver response iocb object. 9734 IOCB_t *irsp = &rspiocb->iocb; lpfc_ignore_els_cmpl() 9742 if (cmdiocb->iocb.ulpCommand == CMD_GEN_REQUEST64_CR) lpfc_ignore_els_cmpl() 9750 * lpfc_sli_abort_iotag_issue - Issue abort for a command iocb 9753 * @cmdiocb: Pointer to driver command iocb object. 9755 * This function issues an abort iocb for the provided command iocb down to 9756 * the port. Other than the case the outstanding command iocb is an abort 9759 * memory allocation failure or when the command iocb is an abort request. 9778 icmd = &cmdiocb->iocb; lpfc_sli_abort_iotag_issue() 9794 iabt = &abtsiocbp->iocb; lpfc_sli_abort_iotag_issue() 9849 * iocb off txcmplq and call compl in case of IOCB_ERROR. lpfc_sli_abort_iotag_issue() 9855 * lpfc_sli_issue_abort_iotag - Abort function for a command iocb 9858 * @cmdiocb: Pointer to driver command iocb object. 9860 * This function issues an abort iocb for the provided command iocb. In case 9861 * of unloading, the abort iocb will not be issued to commands on the ELS 9864 * hbalock held. The function returns 0 when the command iocb is an abort 9880 icmd = &cmdiocb->iocb; lpfc_sli_issue_abort_iotag() 9887 * If we're unloading, don't abort iocb on the ELS ring, but change lpfc_sli_issue_abort_iotag() 9906 * iocb off txcmplq and call compl in case of IOCB_ERROR. lpfc_sli_issue_abort_iotag() 9932 * @iocbq: Pointer to driver iocb object. 9938 * This function acts as an iocb filter for functions which abort or count 9940 * 0 if the filtering criteria is met for the given iocb and will return 9943 * given iocb is for the SCSI device specified by vport, tgt_id and 9946 * given iocb is for the SCSI target specified by vport and tgt_id 9949 * given iocb is for the SCSI host associated with the given vport. 10036 * @cmdiocb: Pointer to command iocb object. 10037 * @rspiocb: Pointer to response iocb object. 10039 * This function is called when an aborted FCP iocb completes. This 10041 * This function frees the iocb. 10051 cmdiocb->iocb.un.acxri.abortContextTag, lpfc_sli_abort_fcp_cmpl() 10052 cmdiocb->iocb.un.acxri.abortIoTag, lpfc_sli_abort_fcp_cmpl() 10053 cmdiocb->iotag, rspiocb->iocb.ulpStatus, lpfc_sli_abort_fcp_cmpl() 10054 rspiocb->iocb.un.ulpWord[4]); lpfc_sli_abort_fcp_cmpl() 10115 cmd = &iocbq->iocb; lpfc_sli_abort_iocb() 10116 abtsiocb->iocb.un.acxri.abortType = ABORT_TYPE_ABTS; lpfc_sli_abort_iocb() 10117 abtsiocb->iocb.un.acxri.abortContextTag = cmd->ulpContext; lpfc_sli_abort_iocb() 10119 abtsiocb->iocb.un.acxri.abortIoTag = iocbq->sli4_xritag; lpfc_sli_abort_iocb() 10121 abtsiocb->iocb.un.acxri.abortIoTag = cmd->ulpIoTag; lpfc_sli_abort_iocb() 10122 abtsiocb->iocb.ulpLe = 1; lpfc_sli_abort_iocb() 10123 abtsiocb->iocb.ulpClass = cmd->ulpClass; lpfc_sli_abort_iocb() 10134 abtsiocb->iocb.ulpCommand = CMD_ABORT_XRI_CN; lpfc_sli_abort_iocb() 10136 abtsiocb->iocb.ulpCommand = CMD_CLOSE_XRI_CN; lpfc_sli_abort_iocb() 10217 icmd = &iocbq->iocb; lpfc_sli_abort_taskmgmt() 10218 abtsiocbq->iocb.un.acxri.abortType = ABORT_TYPE_ABTS; lpfc_sli_abort_taskmgmt() 10219 abtsiocbq->iocb.un.acxri.abortContextTag = icmd->ulpContext; lpfc_sli_abort_taskmgmt() 10221 abtsiocbq->iocb.un.acxri.abortIoTag = lpfc_sli_abort_taskmgmt() 10224 abtsiocbq->iocb.un.acxri.abortIoTag = icmd->ulpIoTag; lpfc_sli_abort_taskmgmt() 10225 abtsiocbq->iocb.ulpLe = 1; lpfc_sli_abort_taskmgmt() 10226 abtsiocbq->iocb.ulpClass = icmd->ulpClass; lpfc_sli_abort_taskmgmt() 10241 abtsiocbq->iocb.ulpCommand = CMD_ABORT_XRI_CN; lpfc_sli_abort_taskmgmt() 10243 abtsiocbq->iocb.ulpCommand = CMD_CLOSE_XRI_CN; lpfc_sli_abort_taskmgmt() 10281 * @cmdiocbq: Pointer to command iocb. 10282 * @rspiocbq: Pointer to response iocb. 10290 * This function copy the contents of the response iocb to the 10291 * response iocb memory object provided by the caller of 10293 * sleeps for the iocb completion. 10308 * A time out has occurred for the iocb. If a time out lpfc_sli_wake_iocb_wait() 10325 memcpy(&((struct lpfc_iocbq *)cmdiocbq->context2)->iocb, lpfc_sli_wake_iocb_wait() 10326 &rspiocbq->iocb, sizeof(IOCB_t)); lpfc_sli_wake_iocb_wait() 10346 * @piocbq: Pointer to command iocb. 10370 * lpfc_sli_issue_iocb_wait - Synchronous function to issue iocb commands 10373 * @piocb: Pointer to command iocb. 10374 * @prspiocbq: Pointer to response iocb. 10377 * This function issues the iocb to firmware and waits for the 10378 * iocb to complete. The iocb_cmpl field of the shall be used 10382 * that will provide the needed clean up. If the iocb command is 10386 * a status of IOCB_TIMEDOUT. The caller should not free the iocb 10388 * The function waits for the iocb completion using an 10390 * This function will sleep while waiting for iocb completion. 10394 * This function assumes that the iocb completions occur while 10396 * the thread which process iocb completion for this ring. 10397 * This function clears the iocb_flag of the iocb object before 10398 * issuing the iocb and the iocb completion handler sets this 10399 * flag and wakes this thread when the iocb completes. 10400 * The contents of the response iocb will be copied to prspiocbq 10416 struct lpfc_iocbq *iocb; lpfc_sli_issue_iocb_wait() local 10457 * IOCB timed out. Inform the wake iocb wait lpfc_sli_issue_iocb_wait() 10487 list_for_each_entry(iocb, &pring->txq, list) { lpfc_sli_issue_iocb_wait() 10490 list_for_each_entry(iocb, &pring->txcmplq, list) { lpfc_sli_issue_iocb_wait() 11479 size_t offset = offsetof(struct lpfc_iocbq, iocb); lpfc_sli4_iocb_param_transfer() 11485 pIocbIn->iocb.ulpStatus = (status & LPFC_IOCB_STATUS_MASK); lpfc_sli4_iocb_param_transfer() 11487 if (pIocbIn->iocb.ulpStatus == IOSTAT_FCP_RSP_ERROR) lpfc_sli4_iocb_param_transfer() 11488 pIocbIn->iocb.un.fcpi.fcpi_parm = lpfc_sli4_iocb_param_transfer() 11489 pIocbOut->iocb.un.fcpi.fcpi_parm - lpfc_sli4_iocb_param_transfer() 11492 pIocbIn->iocb.un.ulpWord[4] = wcqe->parameter; lpfc_sli4_iocb_param_transfer() 11494 pIocbIn->iocb.un.ulpWord[4] = wcqe->parameter; lpfc_sli4_iocb_param_transfer() 11495 switch (pIocbOut->iocb.ulpCommand) { lpfc_sli4_iocb_param_transfer() 11506 numBdes = pIocbOut->iocb.un.genreq64.bdl.bdeSize/ lpfc_sli4_iocb_param_transfer() 11521 pIocbIn->iocb.un.genreq64.bdl.bdeSize = max_response; lpfc_sli4_iocb_param_transfer() 11523 pIocbIn->iocb.un.genreq64.bdl.bdeSize = lpfc_sli4_iocb_param_transfer() 11529 pIocbIn->iocb.ulpStatus = IOSTAT_LOCAL_REJECT; lpfc_sli4_iocb_param_transfer() 11532 pIocbIn->iocb.un.ulpWord[4] = IOERR_RX_DMA_FAILED; lpfc_sli4_iocb_param_transfer() 11534 pIocbIn->iocb.un.ulpWord[4] = IOERR_TX_DMA_FAILED; lpfc_sli4_iocb_param_transfer() 11536 pIocbIn->iocb.unsli3.sli3_bg.bgstat = 0; lpfc_sli4_iocb_param_transfer() 11538 pIocbIn->iocb.unsli3.sli3_bg.bgstat |= lpfc_sli4_iocb_param_transfer() 11541 pIocbIn->iocb.unsli3.sli3_bg.bgstat |= lpfc_sli4_iocb_param_transfer() 11544 pIocbIn->iocb.unsli3.sli3_bg.bgstat |= lpfc_sli4_iocb_param_transfer() 11549 pIocbIn->iocb.unsli3.sli3_bg.bgstat |= lpfc_sli4_iocb_param_transfer() 11551 pIocbIn->iocb.unsli3.sli3_bg.bghm = lpfc_sli4_iocb_param_transfer() 11559 if (!pIocbIn->iocb.unsli3.sli3_bg.bgstat) lpfc_sli4_iocb_param_transfer() 11560 pIocbIn->iocb.unsli3.sli3_bg.bgstat |= lpfc_sli4_iocb_param_transfer() 14366 * This function gets an xritag for the iocb. If there is no unused xritag 15015 * lpfc_sli4_seq_abort_rsp_cmpl - BLS ABORT RSP seq abort iocb complete handler 15020 * This function handles the sequence abort response iocb command complete 15022 * accept iocb. 15039 if (rsp_iocbq && rsp_iocbq->iocb.ulpStatus) lpfc_sli4_seq_abort_rsp_cmpl() 15042 rsp_iocbq->iocb.ulpStatus, lpfc_sli4_seq_abort_rsp_cmpl() 15043 rsp_iocbq->iocb.un.ulpWord[4]); lpfc_sli4_seq_abort_rsp_cmpl() 15117 /* Allocate buffer for rsp iocb */ lpfc_sli4_seq_abort_rsp() 15125 icmd = &ctiocb->iocb; lpfc_sli4_seq_abort_rsp() 15132 /* Fill in the rest of iocb fields */ lpfc_sli4_seq_abort_rsp() 15338 first_iocbq->iocb.unsli3.rcvsli3.acc_len = 0; lpfc_prep_seq() 15339 first_iocbq->iocb.ulpStatus = IOSTAT_SUCCESS; lpfc_prep_seq() 15343 first_iocbq->iocb.ulpCommand = CMD_IOCB_RCV_ELS64_CX; lpfc_prep_seq() 15344 first_iocbq->iocb.un.rcvels.parmRo = lpfc_prep_seq() 15346 first_iocbq->iocb.ulpPU = PARM_NPIV_DID; lpfc_prep_seq() 15348 first_iocbq->iocb.ulpCommand = CMD_IOCB_RCV_SEQ64_CX; lpfc_prep_seq() 15349 first_iocbq->iocb.ulpContext = NO_XRI; lpfc_prep_seq() 15350 first_iocbq->iocb.unsli3.rcvsli3.ox_id = lpfc_prep_seq() 15353 first_iocbq->iocb.unsli3.rcvsli3.vpi = lpfc_prep_seq() 15361 first_iocbq->iocb.ulpBdeCount = 1; lpfc_prep_seq() 15363 first_iocbq->iocb.un.cont64[0].tus.f.bdeSize = lpfc_prep_seq() 15366 first_iocbq->iocb.un.cont64[0].tus.f.bdeSize = tot_len; lpfc_prep_seq() 15368 first_iocbq->iocb.un.rcvels.remoteID = sid; lpfc_prep_seq() 15370 first_iocbq->iocb.unsli3.rcvsli3.acc_len = tot_len; lpfc_prep_seq() 15384 iocbq->iocb.ulpBdeCount++; lpfc_prep_seq() 15390 &iocbq->iocb.unsli3.sli3Words[4]; lpfc_prep_seq() 15396 iocbq->iocb.unsli3.rcvsli3.acc_len += len; lpfc_prep_seq() 15402 first_iocbq->iocb.ulpStatus = lpfc_prep_seq() 15404 first_iocbq->iocb.un.ulpWord[4] = lpfc_prep_seq() 15416 iocbq->iocb.ulpBdeCount = 1; lpfc_prep_seq() 15418 iocbq->iocb.un.cont64[0].tus.f.bdeSize = lpfc_prep_seq() 15421 iocbq->iocb.un.cont64[0].tus.f.bdeSize = len; lpfc_prep_seq() 15424 iocbq->iocb.unsli3.rcvsli3.acc_len = tot_len; lpfc_prep_seq() 15426 iocbq->iocb.un.rcvels.remoteID = sid; lpfc_prep_seq() 15446 "iocb Rctl x%x Type x%x received\n", lpfc_sli4_send_seq_to_ulp() 15461 /* Free iocb created in lpfc_prep_seq */ lpfc_sli4_send_seq_to_ulp() 17029 /* The xri and iocb resources secured, lpfc_drain_txq() 17037 fail_msg = "to convert iocb to wqe"; lpfc_drain_txq() 1497 lpfc_sli_submit_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, IOCB_t *iocb, struct lpfc_iocbq *nextiocb) lpfc_sli_submit_iocb() argument
|
H A D | lpfc_els.c | 54 struct lpfc_iocbq *iocb); 122 * lpfc_prep_els_iocb - Allocate and prepare a lpfc iocb data structure 146 * Pointer to the newly allocated/prepared els iocb data structure 147 * NULL - when els iocb data structure allocation/preparation failed 165 /* Allocate buffer for command iocb */ lpfc_prep_els_iocb() 200 icmd = &elsiocb->iocb; lpfc_prep_els_iocb() 298 /* prevent preparing iocb with NULL ndlp reference */ lpfc_prep_els_iocb() 948 * @cmdiocb: pointer to lpfc command iocb data structure. 949 * @rspiocb: pointer to lpfc response iocb data structure. 974 IOCB_t *irsp = &rspiocb->iocb; lpfc_cmpl_els_flogi() 1179 * lpfc_issue_els_flogi - Issue an flogi iocb command for a vport 1197 * 0 - successfully issued flogi iocb for @vport 1198 * 1 - failed to issue flogi iocb for @vport 1223 icmd = &elsiocb->iocb; lpfc_issue_els_flogi() 1245 elsiocb->iocb.ulpCt_h = ((SLI4_CT_FCFI >> 1) & 1); lpfc_issue_els_flogi() 1246 elsiocb->iocb.ulpCt_l = (SLI4_CT_FCFI & 1); lpfc_issue_els_flogi() 1249 elsiocb->iocb.ulpContext = phba->fcf.fcfi; lpfc_issue_els_flogi() 1304 * 0 - Successfully issued abort iocb on all outstanding flogis (Always 0) 1310 struct lpfc_iocbq *iocb, *next_iocb; lpfc_els_abort_flogi() local 1322 * Check the txcmplq for an iocb that matches the nport the driver is lpfc_els_abort_flogi() 1326 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) { lpfc_els_abort_flogi() 1327 icmd = &iocb->iocb; lpfc_els_abort_flogi() 1329 ndlp = (struct lpfc_nodelist *)(iocb->context1); lpfc_els_abort_flogi() 1332 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_els_abort_flogi() 1739 * @cmdiocb: pointer to lpfc command iocb data structure. 1740 * @rspiocb: pointer to lpfc response iocb data structure. 1761 irsp = &rspiocb->iocb; lpfc_cmpl_els_rrq() 1806 * @cmdiocb: pointer to lpfc command iocb data structure. 1807 * @rspiocb: pointer to lpfc response iocb data structure. 1837 irsp = &rspiocb->iocb; lpfc_cmpl_els_plogi() 1933 * lpfc_issue_els_plogi - Issue an plogi iocb command for a vport 1979 icmd = &elsiocb->iocb; lpfc_issue_els_plogi() 2019 * @cmdiocb: pointer to lpfc command iocb data structure. 2020 * @rspiocb: pointer to lpfc response iocb data structure. 2043 irsp = &(rspiocb->iocb); lpfc_cmpl_els_prli() 2092 * lpfc_issue_els_prli - Issue a prli iocb command for a vport 2109 * 0 - successfully issued prli iocb command for @vport 2110 * 1 - failed to issue prli iocb command for @vport 2130 icmd = &elsiocb->iocb; lpfc_issue_els_prli() 2299 * @cmdiocb: pointer to lpfc command iocb data structure. 2300 * @rspiocb: pointer to lpfc response iocb data structure. 2325 irsp = &(rspiocb->iocb); lpfc_cmpl_els_adisc() 2389 * lpfc_issue_els_adisc - Issue an address discover iocb to an node on a vport 2426 icmd = &elsiocb->iocb; lpfc_issue_els_adisc() 2463 * @cmdiocb: pointer to lpfc command iocb data structure. 2464 * @rspiocb: pointer to lpfc response iocb data structure. 2489 irsp = &(rspiocb->iocb); lpfc_cmpl_els_logo() 2591 * This routine constructs and issues an ELS Logout (LOGO) iocb command 2630 icmd = &elsiocb->iocb; lpfc_issue_els_logo() 2681 * @cmdiocb: pointer to lpfc command iocb data structure. 2682 * @rspiocb: pointer to lpfc response iocb data structure. 2701 irsp = &rspiocb->iocb; lpfc_cmpl_els_cmd() 2778 icmd = &elsiocb->iocb; lpfc_issue_els_scr() 2874 icmd = &elsiocb->iocb; lpfc_issue_els_farpr() 2923 * lpfc_cancel_retry_delay_tmo - Cancel the timer with delayed iocb-cmd retry 3092 * lpfc_els_retry - Make retry decision on an els command iocb 3094 * @cmdiocb: pointer to lpfc command iocb data structure. 3095 * @rspiocb: pointer to lpfc response iocb data structure. 3118 IOCB_t *irsp = &rspiocb->iocb; lpfc_els_retry() 3470 * lpfc_els_free_data - Free lpfc dma buffer and data structure with an iocb 3522 * lpfc_els_free_iocb - Free a command iocb and its associated resources 3524 * @elsiocb: pointer to lpfc els command iocb data structure. 3617 * @cmdiocb: pointer to lpfc command iocb data structure. 3618 * @rspiocb: pointer to lpfc response iocb data structure. 3639 irsp = &rspiocb->iocb; lpfc_cmpl_els_logo_acc() 3728 * lpfc_cmpl_els_rsp - Completion callback function for els response iocb cmd 3730 * @cmdiocb: pointer to lpfc command iocb data structure. 3731 * @rspiocb: pointer to lpfc response iocb data structure. 3756 irsp = &rspiocb->iocb; lpfc_cmpl_els_rsp() 3800 cmdiocb->iocb.un.elsreq64.remoteID); lpfc_cmpl_els_rsp() 3805 cmdiocb->iocb.ulpIoTag, rspiocb->iocb.ulpStatus, lpfc_cmpl_els_rsp() 3806 rspiocb->iocb.un.ulpWord[4], rspiocb->iocb.ulpTimeout, lpfc_cmpl_els_rsp() 3810 if ((rspiocb->iocb.ulpStatus == 0) lpfc_cmpl_els_rsp() 3899 * lpfc_els_rsp_acc - Prepare and issue an acc response iocb command 3902 * @oldiocb: pointer to the original lpfc command iocb data structure. 3940 oldcmd = &oldiocb->iocb; lpfc_els_rsp_acc() 3954 icmd = &elsiocb->iocb; lpfc_els_rsp_acc() 3972 icmd = &elsiocb->iocb; lpfc_els_rsp_acc() 3995 icmd = &elsiocb->iocb; lpfc_els_rsp_acc() 4018 elsiocb->iotag, elsiocb->iocb.ulpContext, lpfc_els_rsp_acc() 4040 * lpfc_els_rsp_reject - Propare and issue a rjt response iocb command 4043 * @oldiocb: pointer to the original lpfc command iocb data structure. 4082 icmd = &elsiocb->iocb; lpfc_els_rsp_reject() 4083 oldcmd = &oldiocb->iocb; lpfc_els_rsp_reject() 4101 elsiocb->iocb.ulpContext, ndlp->nlp_DID, lpfc_els_rsp_reject() 4119 * lpfc_els_rsp_adisc_acc - Prepare and issue acc response to adisc iocb cmd 4121 * @oldiocb: pointer to the original lpfc command iocb data structure. 4155 icmd = &elsiocb->iocb; lpfc_els_rsp_adisc_acc() 4156 oldcmd = &oldiocb->iocb; lpfc_els_rsp_adisc_acc() 4164 elsiocb->iotag, elsiocb->iocb.ulpContext, lpfc_els_rsp_adisc_acc() 4193 * lpfc_els_rsp_prli_acc - Prepare and issue acc response to prli iocb cmd 4195 * @oldiocb: pointer to the original lpfc command iocb data structure. 4234 icmd = &elsiocb->iocb; lpfc_els_rsp_prli_acc() 4235 oldcmd = &oldiocb->iocb; lpfc_els_rsp_prli_acc() 4243 elsiocb->iotag, elsiocb->iocb.ulpContext, lpfc_els_rsp_prli_acc() 4291 * lpfc_els_rsp_rnid_acc - Issue rnid acc response iocb command 4294 * @oldiocb: pointer to the original lpfc command iocb data structure. 4340 icmd = &elsiocb->iocb; lpfc_els_rsp_rnid_acc() 4341 oldcmd = &oldiocb->iocb; lpfc_els_rsp_rnid_acc() 4348 elsiocb->iotag, elsiocb->iocb.ulpContext); lpfc_els_rsp_rnid_acc() 4395 * @iocb: pointer to the lpfc command iocb data structure. 4402 struct lpfc_iocbq *iocb, struct lpfc_nodelist *ndlp) lpfc_els_clear_rrq() 4412 pcmd = (uint8_t *) (((struct lpfc_dmabuf *) iocb->context2)->virt); lpfc_els_clear_rrq() 4424 iocb->iotag, iocb->iocb.ulpContext); lpfc_els_clear_rrq() 4443 * @oldiocb: pointer to the original lpfc command iocb data structure. 4462 cmdsize = oldiocb->iocb.unsli3.rcvsli3.acc_len; lpfc_els_rsp_echo_acc() 4474 elsiocb->iocb.ulpContext = oldiocb->iocb.ulpContext; /* Xri / rx_id */ lpfc_els_rsp_echo_acc() 4475 elsiocb->iocb.unsli3.rcvsli3.ox_id = oldiocb->iocb.unsli3.rcvsli3.ox_id; lpfc_els_rsp_echo_acc() 4480 elsiocb->iotag, elsiocb->iocb.ulpContext); lpfc_els_rsp_echo_acc() 4766 * @cmdiocb: pointer to lpfc command iocb data structure. 4807 * lpfc_els_rcv_rscn - Process an unsolicited rscn iocb 4809 * @cmdiocb: pointer to lpfc command iocb data structure. 4842 icmd = &cmdiocb->iocb; lpfc_els_rcv_rscn() 5091 * lpfc_els_rcv_flogi - Process an unsolicited flogi iocb 5093 * @cmdiocb: pointer to lpfc command iocb data structure. 5123 IOCB_t *icmd = &cmdiocb->iocb; lpfc_els_rcv_flogi() 5277 * lpfc_els_rcv_rnid - Process an unsolicited rnid iocb 5279 * @cmdiocb: pointer to lpfc command iocb data structure. 5290 * 0 - Successfully processed rnid iocb (currently always return 0) 5303 icmd = &cmdiocb->iocb; lpfc_els_rcv_rnid() 5331 * lpfc_els_rcv_echo - Process an unsolicited echo iocb 5333 * @cmdiocb: pointer to lpfc command iocb data structure. 5337 * 0 - Successfully processed echo iocb (currently always return 0) 5355 * lpfc_els_rcv_lirr - Process an unsolicited lirr iocb 5357 * @cmdiocb: pointer to lpfc command iocb data structure. 5365 * 0 - Successfully processed lirr iocb (currently always return 0) 5383 * lpfc_els_rcv_rrq - Process an unsolicited rrq iocb 5385 * @cmdiocb: pointer to lpfc command iocb data structure. 5465 icmd = &elsiocb->iocb; lpfc_els_rsp_rls_acc() 5485 elsiocb->iotag, elsiocb->iocb.ulpContext, lpfc_els_rsp_rls_acc() 5552 icmd = &elsiocb->iocb; lpfc_els_rsp_rps_acc() 5580 elsiocb->iotag, elsiocb->iocb.ulpContext, lpfc_els_rsp_rps_acc() 5591 * lpfc_els_rcv_rls - Process an unsolicited rls iocb 5593 * @cmdiocb: pointer to lpfc command iocb data structure. 5606 * 0 - Successfully processed rls iocb (currently always return 0) 5628 ((cmdiocb->iocb.unsli3.rcvsli3.ox_id << 16) | lpfc_els_rcv_rls() 5629 cmdiocb->iocb.ulpContext)); /* rx_id */ lpfc_els_rcv_rls() 5654 * lpfc_els_rcv_rtv - Process an unsolicited rtv iocb 5656 * @cmdiocb: pointer to lpfc command iocb data structure. 5672 * 0 - Successfully processed rtv iocb (currently always return 0) 5704 elsiocb->iocb.ulpContext = cmdiocb->iocb.ulpContext; /* Xri / rx_id */ lpfc_els_rcv_rtv() 5705 elsiocb->iocb.unsli3.rcvsli3.ox_id = cmdiocb->iocb.unsli3.rcvsli3.ox_id; lpfc_els_rcv_rtv() 5721 elsiocb->iotag, elsiocb->iocb.ulpContext, lpfc_els_rcv_rtv() 5741 /* lpfc_els_rcv_rps - Process an unsolicited rps iocb 5743 * @cmdiocb: pointer to lpfc command iocb data structure. 5756 * 0 - Successfully processed rps iocb (currently always return 0) 5791 ((cmdiocb->iocb.unsli3.rcvsli3.ox_id << 16) | lpfc_els_rcv_rps() 5792 cmdiocb->iocb.ulpContext)); /* rx_id */ lpfc_els_rcv_rps() 5818 /* lpfc_issue_els_rrq - Process an unsolicited rps iocb 5828 * 0 - Successfully sent rrq els iocb. 5829 * 1 - Failed to send rrq els iocb. 5856 icmd = &elsiocb->iocb; lpfc_issue_els_rrq() 5913 * @oldiocb: pointer to the original lpfc command iocb data structure. 5944 icmd = &elsiocb->iocb; lpfc_els_rsp_rpl_acc() 5945 oldcmd = &oldiocb->iocb; lpfc_els_rsp_rpl_acc() 5968 elsiocb->iotag, elsiocb->iocb.ulpContext, lpfc_els_rsp_rpl_acc() 5982 * lpfc_els_rcv_rpl - Process an unsolicited rpl iocb 5984 * @cmdiocb: pointer to lpfc command iocb data structure. 5995 * 0 - Successfully processed rpl iocb (currently always return 0) 6042 * @cmdiocb: pointer to lpfc command iocb data structure. 6073 icmd = &cmdiocb->iocb; lpfc_els_rcv_farp() 6123 * lpfc_els_rcv_farpr - Process an unsolicited farp response iocb 6125 * @cmdiocb: pointer to lpfc command iocb data structure. 6145 icmd = &cmdiocb->iocb; lpfc_els_rcv_farpr() 6161 * lpfc_els_rcv_fan - Process an unsolicited fan iocb command 6163 * @cmdiocb: pointer to lpfc command iocb data structure. 6177 * 0 - Successfully processed fan iocb (currently always return 0). 6285 cmd = &piocb->iocb; lpfc_els_timeout_handler() 6288 piocb->iocb.ulpCommand == CMD_ABORT_XRI_CN || lpfc_els_timeout_handler() 6289 piocb->iocb.ulpCommand == CMD_CLOSE_XRI_CN) lpfc_els_timeout_handler() 6328 cmd = &piocb->iocb; lpfc_els_timeout_handler() 6396 /* Abort each iocb on the aborted list and remove the dlist links. */ lpfc_els_flush_cmd() 6413 cmd = &piocb->iocb; lpfc_els_flush_cmd() 6473 * @cmdiocbp: Pointer to command iocb which reported error. 6474 * @rspiocbp: Pointer to response iocb which reported error. 6496 if (rspiocbp->iocb.ulpStatus == IOSTAT_LS_RJT) { lpfc_send_els_failure_event() 6506 stat.un.lsRjtError = be32_to_cpu(rspiocbp->iocb.un.ulpWord[4]); lpfc_send_els_failure_event() 6516 if ((rspiocbp->iocb.ulpStatus == IOSTAT_NPORT_BSY) || lpfc_send_els_failure_event() 6517 (rspiocbp->iocb.ulpStatus == IOSTAT_FABRIC_BSY)) { lpfc_send_els_failure_event() 6519 if (rspiocbp->iocb.ulpStatus == IOSTAT_NPORT_BSY) lpfc_send_els_failure_event() 6622 * @elsiocb: pointer to lpfc els command iocb data structure. 6641 IOCB_t *icmd = &elsiocb->iocb; lpfc_els_unsol_buffer() 6739 vport->fc_myDID = elsiocb->iocb.un.rcvels.parmRo; lpfc_els_unsol_buffer() 7024 * @elsiocb: pointer to lpfc els iocb data structure. 7029 * lpfc_els_unsol_buffer() after properly set up the iocb buffer from the 7037 IOCB_t *icmd = &elsiocb->iocb; lpfc_els_unsol_event() 7436 * @cmdiocb: pointer to FDISC command iocb. 7437 * @rspiocb: pointer to FDISC response iocb. 7448 if ((rspiocb->iocb.ulpStatus != IOSTAT_FABRIC_RJT) || lpfc_fabric_login_reqd() 7449 (rspiocb->iocb.un.ulpWord[4] != RJT_LOGIN_REQUIRED)) lpfc_fabric_login_reqd() 7456 * lpfc_cmpl_els_fdisc - Completion function for fdisc iocb command 7458 * @cmdiocb: pointer to lpfc command iocb data structure. 7459 * @rspiocb: pointer to lpfc response iocb data structure. 7484 IOCB_t *irsp = &rspiocb->iocb; lpfc_cmpl_els_fdisc() 7598 * lpfc_issue_els_fdisc - Issue a fdisc iocb command 7614 * 0 - Successfully issued fdisc iocb command 7615 * 1 - Failed to issue fdisc iocb command 7642 icmd = &elsiocb->iocb; lpfc_issue_els_fdisc() 7701 * @cmdiocb: pointer to lpfc command iocb data structure. 7702 * @rspiocb: pointer to lpfc response iocb data structure. 7722 irsp = &rspiocb->iocb; lpfc_cmpl_els_npiv_logo() 7779 icmd = &elsiocb->iocb; lpfc_issue_els_npiv_logo() 7812 * This routine is invoked by the fabric iocb block timer after 7813 * timeout. It posts the fabric iocb block timeout event by setting the 7838 * lpfc_resume_fabric_iocbs - Issue a fabric iocb from driver internal list 7841 * This routine issues one fabric iocb from the driver internal list to 7842 * the HBA. It first checks whether it's ready to issue one fabric iocb to 7843 * the HBA (whether there is no outstanding fabric iocb). If so, it shall 7844 * remove one pending fabric iocb from the driver internal list and invokes 7845 * lpfc_sli_issue_iocb() routine to send the fabric iocb to the HBA. 7850 struct lpfc_iocbq *iocb; lpfc_resume_fabric_iocbs() local 7856 iocb = NULL; lpfc_resume_fabric_iocbs() 7858 /* Post any pending iocb to the SLI layer */ lpfc_resume_fabric_iocbs() 7860 list_remove_head(&phba->fabric_iocb_list, iocb, typeof(*iocb), lpfc_resume_fabric_iocbs() 7862 if (iocb) lpfc_resume_fabric_iocbs() 7863 /* Increment fabric iocb count to hold the position */ lpfc_resume_fabric_iocbs() 7867 if (iocb) { lpfc_resume_fabric_iocbs() 7868 iocb->fabric_iocb_cmpl = iocb->iocb_cmpl; lpfc_resume_fabric_iocbs() 7869 iocb->iocb_cmpl = lpfc_cmpl_fabric_iocb; lpfc_resume_fabric_iocbs() 7870 iocb->iocb_flag |= LPFC_IO_FABRIC; lpfc_resume_fabric_iocbs() 7872 lpfc_debugfs_disc_trc(iocb->vport, LPFC_DISC_TRC_ELS_CMD, lpfc_resume_fabric_iocbs() 7874 iocb->vport->port_state, 0, 0); lpfc_resume_fabric_iocbs() 7876 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocb, 0); lpfc_resume_fabric_iocbs() 7879 iocb->iocb_cmpl = iocb->fabric_iocb_cmpl; lpfc_resume_fabric_iocbs() 7880 iocb->fabric_iocb_cmpl = NULL; lpfc_resume_fabric_iocbs() 7881 iocb->iocb_flag &= ~LPFC_IO_FABRIC; lpfc_resume_fabric_iocbs() 7882 cmd = &iocb->iocb; lpfc_resume_fabric_iocbs() 7885 iocb->iocb_cmpl(phba, iocb, iocb); lpfc_resume_fabric_iocbs() 7896 * lpfc_unblock_fabric_iocbs - Unblock issuing fabric iocb command 7899 * This routine unblocks the issuing fabric iocb command. The function 7900 * will clear the fabric iocb block bit and then invoke the routine 7901 * lpfc_resume_fabric_iocbs() to issue one of the pending fabric iocb 7902 * from the driver internal fabric iocb list. 7914 * lpfc_block_fabric_iocbs - Block issuing fabric iocb command 7917 * This routine blocks the issuing fabric iocb for a specified amount of 7918 * time (currently 100 ms). This is done by set the fabric iocb block bit 7920 * fabric iocb will be issued out of the HBA. 7937 * lpfc_cmpl_fabric_iocb - Completion callback function for fabric iocb 7939 * @cmdiocb: pointer to lpfc command iocb data structure. 7940 * @rspiocb: pointer to lpfc response iocb data structure. 7942 * This routine is the callback function that is put to the fabric iocb's 7943 * callback function pointer (iocb->iocb_cmpl). The original iocb's callback 7944 * function pointer has been stored in iocb->fabric_iocb_cmpl. This callback 7945 * function first restores and invokes the original iocb's callback function 7947 * fabric bound iocb from the driver internal fabric iocb list onto the wire. 7958 switch (rspiocb->iocb.ulpStatus) { lpfc_cmpl_fabric_iocb() 7961 if (rspiocb->iocb.un.ulpWord[4] & RJT_UNAVAIL_TEMP) { lpfc_cmpl_fabric_iocb() 7973 be32_to_cpu(rspiocb->iocb.un.ulpWord[4]); lpfc_cmpl_fabric_iocb() 7996 * lpfc_issue_fabric_iocb - Issue a fabric iocb command 7998 * @iocb: pointer to lpfc command iocb data structure. 8000 * This routine is used as the top-level API for issuing a fabric iocb command 8002 * function makes sure that only one fabric bound iocb will be outstanding at 8004 * is already an outstanding fabric iocb on the wire. If so, it will put the 8005 * newly issued iocb onto the driver internal fabric iocb list, waiting to be 8006 * issued later. Otherwise, it will issue the iocb on the wire and update the 8007 * fabric iocb count it indicate that there is one fabric iocb on the wire. 8016 * IOCB_SUCCESS - either fabric iocb put on the list or issued successfully 8017 * IOCB_ERROR - failed to issue fabric iocb 8020 lpfc_issue_fabric_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *iocb) lpfc_issue_fabric_iocb() argument 8034 /* Increment fabric iocb count to hold the position */ lpfc_issue_fabric_iocb() 8038 iocb->fabric_iocb_cmpl = iocb->iocb_cmpl; lpfc_issue_fabric_iocb() 8039 iocb->iocb_cmpl = lpfc_cmpl_fabric_iocb; lpfc_issue_fabric_iocb() 8040 iocb->iocb_flag |= LPFC_IO_FABRIC; lpfc_issue_fabric_iocb() 8042 lpfc_debugfs_disc_trc(iocb->vport, LPFC_DISC_TRC_ELS_CMD, lpfc_issue_fabric_iocb() 8044 iocb->vport->port_state, 0, 0); lpfc_issue_fabric_iocb() 8046 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocb, 0); lpfc_issue_fabric_iocb() 8049 iocb->iocb_cmpl = iocb->fabric_iocb_cmpl; lpfc_issue_fabric_iocb() 8050 iocb->fabric_iocb_cmpl = NULL; lpfc_issue_fabric_iocb() 8051 iocb->iocb_flag &= ~LPFC_IO_FABRIC; lpfc_issue_fabric_iocb() 8056 list_add_tail(&iocb->list, &phba->fabric_iocb_list); lpfc_issue_fabric_iocb() 8064 * lpfc_fabric_abort_vport - Abort a vport's iocbs from driver fabric iocb list 8097 * lpfc_fabric_abort_nport - Abort a ndlp's iocbs from driver fabric iocb list 8130 * lpfc_fabric_abort_hba - Abort all iocbs on driver fabric iocb list 4401 lpfc_els_clear_rrq(struct lpfc_vport *vport, struct lpfc_iocbq *iocb, struct lpfc_nodelist *ndlp) lpfc_els_clear_rrq() argument
|
H A D | lpfc_bsg.c | 100 struct fc_bsg_job *set_job; /* job waiting for this iocb to finish */ 103 struct lpfc_bsg_iocb iocb; member in union:bsg_job_data::__anon9070 280 * @cmdiocbq: Pointer to command iocb. 281 * @rspiocbq: Pointer to response iocb. 289 * This function copies the contents of the response iocb to the 290 * response iocb memory object provided by the caller of 292 * sleeps for the iocb completion. 304 struct lpfc_bsg_iocb *iocb; lpfc_bsg_send_mgmt_cmd_cmp() local 325 iocb = &dd_data->context_un.iocb; lpfc_bsg_send_mgmt_cmd_cmp() 326 ndlp = iocb->ndlp; lpfc_bsg_send_mgmt_cmd_cmp() 327 rmp = iocb->rmp; lpfc_bsg_send_mgmt_cmd_cmp() 330 rsp = &rspiocbq->iocb; lpfc_bsg_send_mgmt_cmd_cmp() 428 cmd = &cmdiocbq->iocb; lpfc_bsg_send_mgmt_cmd() 494 dd_data->context_un.iocb.cmdiocbq = cmdiocbq; lpfc_bsg_send_mgmt_cmd() 495 dd_data->context_un.iocb.ndlp = ndlp; lpfc_bsg_send_mgmt_cmd() 496 dd_data->context_un.iocb.rmp = rmp; lpfc_bsg_send_mgmt_cmd() 526 /* iocb failed so cleanup */ lpfc_bsg_send_mgmt_cmd() 553 * @cmdiocbq: Pointer to command iocb. 554 * @rspiocbq: Pointer to response iocb. 562 * This function copies the contents of the response iocb to the 563 * response iocb memory object provided by the caller of 565 * sleeps for the iocb completion. 584 ndlp = dd_data->context_un.iocb.ndlp; lpfc_bsg_rport_els_cmp() 601 rsp = &rspiocbq->iocb; lpfc_bsg_rport_els_cmp() 695 /* We will use the allocated dma buffers by prep els iocb for command lpfc_bsg_rport_els() 718 cmdiocbq->iocb.ulpContext = phba->sli4_hba.rpi_ids[rpi]; lpfc_bsg_rport_els() 720 cmdiocbq->iocb.ulpContext = rpi; lpfc_bsg_rport_els() 727 dd_data->context_un.iocb.cmdiocbq = cmdiocbq; lpfc_bsg_rport_els() 728 dd_data->context_un.iocb.ndlp = ndlp; lpfc_bsg_rport_els() 729 dd_data->context_un.iocb.rmp = NULL; lpfc_bsg_rport_els() 759 /* iocb failed so cleanup */ lpfc_bsg_rport_els() 929 if (piocbq->iocb.ulpBdeCount == 0 || lpfc_bsg_ct_unsol_event() 930 piocbq->iocb.un.cont64[0].tus.f.bdeSize == 0) lpfc_bsg_ct_unsol_event() 940 dma_addr = getPaddr(piocbq->iocb.un.cont64[0].addrHigh, lpfc_bsg_ct_unsol_event() 941 piocbq->iocb.un.cont64[0].addrLow); lpfc_bsg_ct_unsol_event() 974 evt_dat->len = iocbq->iocb.unsli3.rcvsli3.acc_len; lpfc_bsg_ct_unsol_event() 977 for (i = 0; i < iocbq->iocb.ulpBdeCount; i++) lpfc_bsg_ct_unsol_event() 979 iocbq->iocb.un.cont64[i].tus.f.bdeSize; lpfc_bsg_ct_unsol_event() 1002 for (i = 0; i < iocbq->iocb.ulpBdeCount; i++) { lpfc_bsg_ct_unsol_event() 1007 &iocbq->iocb.un.ulpWord[0]; lpfc_bsg_ct_unsol_event() 1012 &iocbq->iocb.unsli3. lpfc_bsg_ct_unsol_event() 1020 size = iocbq->iocb.un.cont64[i]. lpfc_bsg_ct_unsol_event() 1022 bde = &iocbq->iocb.un.cont64[i]; lpfc_bsg_ct_unsol_event() 1101 piocbq->iocb.ulpContext; lpfc_bsg_ct_unsol_event() 1103 piocbq->iocb.unsli3.rcvsli3.ox_id; lpfc_bsg_ct_unsol_event() 1105 piocbq->iocb.un.rcvels.remoteID; lpfc_bsg_ct_unsol_event() 1108 evt_dat->immed_dat = piocbq->iocb.ulpContext; lpfc_bsg_ct_unsol_event() 1365 * @cmdiocbq: Pointer to command iocb. 1366 * @rspiocbq: Pointer to response iocb. 1374 * This function copy the contents of the response iocb to the 1375 * response iocb memory object provided by the caller of 1377 * sleeps for the iocb completion. 1408 ndlp = dd_data->context_un.iocb.ndlp; lpfc_issue_ct_rsp_cmp() 1411 rsp = &rspiocbq->iocb; lpfc_issue_ct_rsp_cmp() 1483 /* Allocate buffer for command iocb */ lpfc_issue_ct_rsp() 1490 icmd = &ctiocb->iocb; lpfc_issue_ct_rsp() 1501 /* Fill in rest of iocb */ lpfc_issue_ct_rsp() 1564 dd_data->context_un.iocb.cmdiocbq = ctiocb; lpfc_issue_ct_rsp() 1565 dd_data->context_un.iocb.ndlp = ndlp; lpfc_issue_ct_rsp() 1566 dd_data->context_un.iocb.rmp = NULL; lpfc_issue_ct_rsp() 1592 /* iocb failed so cleanup */ lpfc_issue_ct_rsp() 2590 cmd = &cmdiocbq->iocb; lpfcdiag_loop_get_xri() 2591 rsp = &rspiocbq->iocb; lpfcdiag_loop_get_xri() 2881 cmd = &cmdiocbq->iocb; lpfcdiag_loop_post_rxbufs() 2941 /* The iocb was freed by lpfc_sli_issue_iocb */ lpfcdiag_loop_post_rxbufs() 2949 cmd = &cmdiocbq->iocb; lpfcdiag_loop_post_rxbufs() 2980 * 7. The cmd iocb FsType is set to elx loopback and the CmdRsp to looppback. 3138 cmd = &cmdiocbq->iocb; lpfc_bsg_diag_loopback_run() 3140 rsp = &rspiocbq->iocb; lpfc_bsg_diag_loopback_run() 3169 /* Build the XMIT_SEQUENCE iocb */ lpfc_bsg_diag_loopback_run() 3208 "3126 Failed loopback test issue iocb: " lpfc_bsg_diag_loopback_run() 4935 * @cmdiocbq: Pointer to command iocb. 4936 * @rspiocbq: Pointer to response iocb. 4944 * This function copies the contents of the response iocb to the 4945 * response iocb memory object provided by the caller of 4947 * sleeps for the iocb completion. 4969 rsp = &rspiocbq->iocb; lpfc_bsg_menlo_cmd_cmp() 5143 cmd = &cmdiocbq->iocb; lpfc_menlo_cmd() 5338 cmdiocb = dd_data->context_un.iocb.cmdiocbq; lpfc_bsg_timeout()
|
H A D | lpfc_scsi.c | 389 IOCB_t *iocb; lpfc_new_scsi_buf_s3() local 470 iocb = &psb->cur_iocbq.iocb; lpfc_new_scsi_buf_s3() 471 iocb->un.fcpi64.bdl.ulpIoTag32 = 0; lpfc_new_scsi_buf_s3() 475 iocb->un.fcpi64.bdl.bdeFlags = BUFF_TYPE_BDE_IMMED; lpfc_new_scsi_buf_s3() 476 iocb->un.fcpi64.bdl.bdeSize = sizeof(struct fcp_cmnd); lpfc_new_scsi_buf_s3() 477 iocb->un.fcpi64.bdl.addrLow = offsetof(IOCB_t, lpfc_new_scsi_buf_s3() 479 iocb->un.fcpi64.bdl.addrHigh = 0; lpfc_new_scsi_buf_s3() 480 iocb->ulpBdeCount = 0; lpfc_new_scsi_buf_s3() 481 iocb->ulpLe = 0; lpfc_new_scsi_buf_s3() 483 iocb->unsli3.fcp_ext.rbde.tus.f.bdeFlags = lpfc_new_scsi_buf_s3() 485 iocb->unsli3.fcp_ext.rbde.tus.f.bdeSize = lpfc_new_scsi_buf_s3() 487 iocb->unsli3.fcp_ext.rbde.addrLow = lpfc_new_scsi_buf_s3() 489 iocb->unsli3.fcp_ext.rbde.addrHigh = lpfc_new_scsi_buf_s3() 492 iocb->un.fcpi64.bdl.bdeFlags = BUFF_TYPE_BLP_64; lpfc_new_scsi_buf_s3() 493 iocb->un.fcpi64.bdl.bdeSize = lpfc_new_scsi_buf_s3() 495 iocb->un.fcpi64.bdl.addrLow = lpfc_new_scsi_buf_s3() 497 iocb->un.fcpi64.bdl.addrHigh = lpfc_new_scsi_buf_s3() 499 iocb->ulpBdeCount = 1; lpfc_new_scsi_buf_s3() 500 iocb->ulpLe = 1; lpfc_new_scsi_buf_s3() 502 iocb->ulpClass = CLASS3; lpfc_new_scsi_buf_s3() 795 IOCB_t *iocb; lpfc_new_scsi_buf_s4() local 904 iocb = &psb->cur_iocbq.iocb; lpfc_new_scsi_buf_s4() 905 iocb->un.fcpi64.bdl.ulpIoTag32 = 0; lpfc_new_scsi_buf_s4() 906 iocb->un.fcpi64.bdl.bdeFlags = BUFF_TYPE_BDE_64; lpfc_new_scsi_buf_s4() 911 iocb->un.fcpi64.bdl.bdeSize = sizeof(struct fcp_cmnd); lpfc_new_scsi_buf_s4() 912 iocb->un.fcpi64.bdl.addrLow = putPaddrLow(pdma_phys_fcp_cmd); lpfc_new_scsi_buf_s4() 913 iocb->un.fcpi64.bdl.addrHigh = putPaddrHigh(pdma_phys_fcp_cmd); lpfc_new_scsi_buf_s4() 914 iocb->ulpBdeCount = 1; lpfc_new_scsi_buf_s4() 915 iocb->ulpLe = 1; lpfc_new_scsi_buf_s4() 916 iocb->ulpClass = CLASS3; lpfc_new_scsi_buf_s4() 1154 IOCB_t *iocb_cmd = &lpfc_cmd->cur_iocbq.iocb; lpfc_scsi_prep_dma_buf_s3() 1229 * explicitly reinitialized since all iocb memory resources are reused. 2711 IOCB_t *iocb_cmd = &lpfc_cmd->cur_iocbq.iocb; lpfc_bg_scsi_prep_dma_buf_s3() 2804 * reinitialized since all iocb memory resources are used many times lpfc_bg_scsi_prep_dma_buf_s3() 3067 struct sli3_bg_fields *bgf = &pIocbOut->iocb.unsli3.sli3_bg; lpfc_parse_bg_err() 3237 IOCB_t *iocb_cmd = &lpfc_cmd->cur_iocbq.iocb; lpfc_scsi_prep_dma_buf_s4() 3330 * all iocb memory resources are reused. 3342 * OAS, set the oas iocb related flags. 3366 IOCB_t *iocb_cmd = &lpfc_cmd->cur_iocbq.iocb; lpfc_bg_scsi_prep_dma_buf_s4() 3488 * OAS, set the oas iocb related flags. lpfc_bg_scsi_prep_dma_buf_s4() 3557 * @rsp_iocb: Pointer to response iocb object which reported error. 3569 uint32_t fcpi_parm = rsp_iocb->iocb.un.fcpi.fcpi_parm; lpfc_send_scsi_error_event() 3689 uint32_t fcpi_parm = rsp_iocb->iocb.un.fcpi.fcpi_parm; lpfc_handle_fcp_err() 3882 lpfc_cmd->result = (pIocbOut->iocb.un.ulpWord[4] & IOERR_PARAM_MASK); lpfc_scsi_cmd_iocb_cmpl() 3883 lpfc_cmd->status = pIocbOut->iocb.ulpStatus; lpfc_scsi_cmd_iocb_cmpl() 3947 pIocbOut->iocb.ulpContext, lpfc_scsi_cmd_iocb_cmpl() 3948 lpfc_cmd->cur_iocbq.iocb.ulpIoTag); lpfc_scsi_cmd_iocb_cmpl() 4003 pIocbOut->iocb.unsli3.sli3_bg.bgstat) { lpfc_scsi_cmd_iocb_cmpl() 4153 * This routine initializes fcp_cmnd and iocb data structure from scsi command 4163 IOCB_t *iocb_cmd = &lpfc_cmd->cur_iocbq.iocb; lpfc_scsi_prep_cmnd() 4190 piocbq->iocb.un.fcpi.fcpi_XRdy = 0; lpfc_scsi_prep_cmnd() 4206 piocbq->iocb.un.fcpi.fcpi_XRdy = fcpdl; lpfc_scsi_prep_cmnd() 4208 piocbq->iocb.un.fcpi.fcpi_XRdy = lpfc_scsi_prep_cmnd() 4233 piocbq->iocb.ulpContext = pnode->nlp_rpi; lpfc_scsi_prep_cmnd() 4235 piocbq->iocb.ulpContext = lpfc_scsi_prep_cmnd() 4238 piocbq->iocb.ulpFCP2Rcvy = 1; lpfc_scsi_prep_cmnd() 4240 piocbq->iocb.ulpFCP2Rcvy = 0; lpfc_scsi_prep_cmnd() 4242 piocbq->iocb.ulpClass = (pnode->nlp_fcp_info & 0x0f); lpfc_scsi_prep_cmnd() 4245 piocbq->iocb.ulpTimeout = lpfc_cmd->timeout; lpfc_scsi_prep_cmnd() 4282 piocb = &piocbq->iocb; lpfc_scsi_prep_task_mgmt_cmd() 4604 lpfc_cmd->cur_iocbq.iocb.ulpContext, lpfc_queuecommand() 4605 lpfc_cmd->cur_iocbq.iocb.ulpIoTag, lpfc_queuecommand() 4606 lpfc_cmd->cur_iocbq.iocb.ulpTimeout, lpfc_queuecommand() 4654 struct lpfc_iocbq *iocb; lpfc_abort_handler() local 4688 iocb = &lpfc_cmd->cur_iocbq; lpfc_abort_handler() 4690 if (!(iocb->iocb_flag & LPFC_IO_ON_TXCMPLQ)) { lpfc_abort_handler() 4710 BUG_ON(iocb->context1 != lpfc_cmd); lpfc_abort_handler() 4713 if (iocb->iocb_flag & LPFC_DRIVER_ABORTED) { lpfc_abort_handler() 4727 iocb->iocb_flag |= LPFC_DRIVER_ABORTED; lpfc_abort_handler() 4735 cmd = &iocb->iocb; lpfc_abort_handler() 4736 icmd = &abtsiocb->iocb; lpfc_abort_handler() 4740 icmd->un.acxri.abortIoTag = iocb->sli4_xritag; lpfc_abort_handler() 4748 abtsiocb->fcp_wqidx = iocb->fcp_wqidx; lpfc_abort_handler() 4750 if (iocb->iocb_flag & LPFC_IO_FOF) lpfc_abort_handler() 4761 ring_number = MAX_SLI3_CONFIGURED_RINGS + iocb->fcp_wqidx; lpfc_abort_handler() 4803 iocb->sli4_xritag, ret, lpfc_abort_handler() 4970 (iocbqrsp->iocb.ulpStatus != IOSTAT_SUCCESS)) { lpfc_send_taskmgmt() 4975 tgt_id, lun_id, iocbqrsp->iocb.ulpStatus, lpfc_send_taskmgmt() 4976 iocbqrsp->iocb.un.ulpWord[4], lpfc_send_taskmgmt() 4980 if (iocbqrsp->iocb.ulpStatus == IOSTAT_FCP_RSP_ERROR) lpfc_send_taskmgmt()
|
H A D | lpfc_sli.h | 59 IOCB_t iocb; /* IOCB cmd */ member in struct:lpfc_iocbq 62 #define LPFC_IO_LIBDFC 1 /* libdfc iocb */ 177 uint16_t numCiocb; /* number of command iocb's per ring */ 178 uint16_t numRiocb; /* number of rsp iocb's per ring */ 179 uint16_t sizeCiocb; /* Size of command iocb's in this ring */ 180 uint16_t sizeRiocb; /* Size of response iocb's in this ring */ 296 #define LPFC_BLOCK_MGMT_IO 0x800 /* Don't allow mgmt mbx or iocb cmds */
|
H A D | lpfc_ct.c | 73 piocbq->iocb.ulpStatus); lpfc_ct_ignore_hbq_buffer() 78 size, piocbq->iocb.ulpStatus); lpfc_ct_ignore_hbq_buffer() 93 IOCB_t *icmd = &piocbq->iocb; lpfc_ct_unsol_event() 126 icmd = &iocbq->iocb; lpfc_ct_unsol_event() 148 icmd = &iocbq->iocb; lpfc_ct_unsol_event() 302 /* Allocate buffer for command iocb */ lpfc_gen_req() 308 icmd = &geniocb->iocb; lpfc_gen_req() 328 /* Fill in rest of iocb */ lpfc_gen_req() 592 irsp = &rspiocb->iocb; lpfc_cmpl_ct_cmd_gid_ft() 736 IOCB_t *irsp = &rspiocb->iocb; lpfc_cmpl_ct_cmd_gff_id() 876 irsp = &rspiocb->iocb; lpfc_cmpl_ct() 890 cmdiocb->iocb.ulpContext, cmdiocb->iocb.ulpIoTag); lpfc_cmpl_ct() 930 IOCB_t *irsp = &rspiocb->iocb; lpfc_cmpl_ct_cmd_rft_id() 951 IOCB_t *irsp = &rspiocb->iocb; lpfc_cmpl_ct_cmd_rnn_id() 972 IOCB_t *irsp = &rspiocb->iocb; lpfc_cmpl_ct_cmd_rspn_id() 993 IOCB_t *irsp = &rspiocb->iocb; lpfc_cmpl_ct_cmd_rsnn_nn() 1026 IOCB_t *irsp = &rspiocb->iocb; lpfc_cmpl_ct_cmd_rff_id() 1335 IOCB_t *irsp = &rspiocb->iocb; lpfc_cmpl_ct_cmd_fdmi()
|
H A D | lpfc_nportdisc.c | 172 irsp = &rspiocb->iocb; lpfc_check_elscmpl_iocb() 209 struct lpfc_iocbq *iocb, *next_iocb; lpfc_els_abort() local 228 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) { lpfc_els_abort() 230 if (lpfc_check_sli_ndlp(phba, pring, iocb, ndlp)) lpfc_els_abort() 231 list_add_tail(&iocb->dlist, &abort_list); lpfc_els_abort() 238 list_for_each_entry_safe(iocb, next_iocb, &abort_list, dlist) { lpfc_els_abort() 240 list_del_init(&iocb->dlist); lpfc_els_abort() 241 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_els_abort() 252 list_for_each_entry_safe(iocb, next_iocb, &pring->txq, list) { lpfc_els_abort() 253 /* Check to see if iocb matches the nport we are looking for */ lpfc_els_abort() 254 if (lpfc_check_sli_ndlp(phba, pring, iocb, ndlp)) { lpfc_els_abort() 255 list_del_init(&iocb->list); lpfc_els_abort() 256 list_add_tail(&iocb->list, &abort_list); lpfc_els_abort() 346 icmd = &cmdiocb->iocb; lpfc_rcv_plogi() 563 icmd = &cmdiocb->iocb; lpfc_rcv_padisc() 1047 irsp = &rspiocb->iocb; lpfc_cmpl_plogi_plogi_issue() 1344 irsp = &rspiocb->iocb; lpfc_cmpl_adisc_adisc_issue() 1704 irsp = &rspiocb->iocb; lpfc_cmpl_prli_prli_issue() 2223 irsp = &rspiocb->iocb; lpfc_cmpl_plogi_npr_node() 2243 irsp = &rspiocb->iocb; lpfc_cmpl_prli_npr_node() 2277 irsp = &rspiocb->iocb; lpfc_cmpl_adisc_npr_node()
|
H A D | lpfc_hbadisc.c | 4383 * Return true if iocb matches the specified nport 4388 struct lpfc_iocbq *iocb, lpfc_check_sli_ndlp() 4392 IOCB_t *icmd = &iocb->iocb; lpfc_check_sli_ndlp() 4395 if (iocb->vport != vport) lpfc_check_sli_ndlp() 4401 if (iocb->context_un.ndlp == ndlp) lpfc_check_sli_ndlp() 4407 if (iocb->context1 == (uint8_t *) ndlp) lpfc_check_sli_ndlp() 4437 struct lpfc_iocbq *iocb, *next_iocb; lpfc_no_rpi() local 4453 list_for_each_entry_safe(iocb, next_iocb, &pring->txq, lpfc_no_rpi() 4456 * Check to see if iocb matches the nport we are lpfc_no_rpi() 4459 if ((lpfc_check_sli_ndlp(phba, pring, iocb, lpfc_no_rpi() 4463 list_move_tail(&iocb->list, lpfc_no_rpi() 5169 struct lpfc_iocbq *iocb, *next_iocb; lpfc_free_tx() local 5175 /* Error matching iocb on txq or txcmplq lpfc_free_tx() 5179 list_for_each_entry_safe(iocb, next_iocb, &pring->txq, list) { lpfc_free_tx() 5180 if (iocb->context1 != ndlp) { lpfc_free_tx() 5183 icmd = &iocb->iocb; lpfc_free_tx() 5187 list_move_tail(&iocb->list, &completions); lpfc_free_tx() 5192 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) { lpfc_free_tx() 5193 if (iocb->context1 != ndlp) { lpfc_free_tx() 5196 icmd = &iocb->iocb; lpfc_free_tx() 5199 lpfc_sli_issue_abort_iotag(phba, pring, iocb); lpfc_free_tx() 4386 lpfc_check_sli_ndlp(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, struct lpfc_iocbq *iocb, struct lpfc_nodelist *ndlp) lpfc_check_sli_ndlp() argument
|
H A D | lpfc_bsg.h | 130 uint32_t xri; /* return the xri of the iocb exchange */
|
H A D | lpfc_hw.h | 1558 iocb */ 3023 uint32_t ring:2; /* Ring for ASYNC_EVENT iocb Bits 0-1*/ 3025 uint32_t ring:2; /* Ring for ASYNC_EVENT iocb Bits 0-1*/ 3466 /* IOCB Command template for Async Status iocb commands */ 3656 ASYNCSTAT_FIELDS asyncstat; /* async_status iocb */ 3717 /* words 8-31 used for que_xri_cx iocb */
|
H A D | lpfc_mem.c | 336 /* Free the iocb lookup array */ lpfc_mem_free_all()
|
H A D | lpfc_init.c | 847 /* Get the response iocb from the head of work queue */ lpfc_sli4_free_sp_events() 1381 * dropped by the firmware. Error iocb (I/O) on txcmplq and let the lpfc_handle_deferred_eratt() 1500 * Error iocb (I/O) on txcmplq and let the SCSI layer lpfc_handle_eratt_s3() 2282 struct lpfc_iocbq *iocb; lpfc_post_buffer() local 2289 /* Allocate buffer for command iocb */ lpfc_post_buffer() 2290 iocb = lpfc_sli_get_iocbq(phba); lpfc_post_buffer() 2291 if (iocb == NULL) { lpfc_post_buffer() 2295 icmd = &iocb->iocb; lpfc_post_buffer() 2304 lpfc_sli_release_iocbq(phba, iocb); lpfc_post_buffer() 2320 lpfc_sli_release_iocbq(phba, iocb); lpfc_post_buffer() 2346 if (lpfc_sli_issue_iocb(phba, pring->ringno, iocb, 0) == lpfc_post_buffer() 2356 lpfc_sli_release_iocbq(phba, iocb); lpfc_post_buffer() 5642 /* Initialize the fabric iocb list */ lpfc_setup_driver_resource_phase1() 5701 * lpfc_free_iocb_list - Free iocb list. 5724 * lpfc_init_iocb_list - Allocate and initialize iocb list. 5741 /* Initialize and populate the iocb list per host. */ lpfc_init_iocb_list() 9553 /* Initialize and populate the iocb list per host */ lpfc_pci_probe_one_s3() 9557 "1405 Failed to initialize iocb list.\n"); lpfc_pci_probe_one_s3() 10323 /* Initialize and populate the iocb list per host */ lpfc_pci_probe_one_s4() 10326 "2821 initialize iocb list %d.\n", lpfc_pci_probe_one_s4() 10332 "1413 Failed to initialize iocb list.\n"); lpfc_pci_probe_one_s4()
|
H A D | lpfc.h | 94 #define LPFC_DRVR_TIMEOUT 16 /* driver iocb timeout value in sec */ 880 /* Data structure used by fabric iocb scheduler */
|
H A D | lpfc_crtn.h | 407 /* Interface exported by fabric iocb scheduler */
|
/linux-4.1.27/fs/9p/ |
H A D | vfs_file.c | 381 v9fs_file_read_iter(struct kiocb *iocb, struct iov_iter *to) v9fs_file_read_iter() argument 383 struct p9_fid *fid = iocb->ki_filp->private_data; v9fs_file_read_iter() 387 iov_iter_count(to), iocb->ki_pos); v9fs_file_read_iter() 389 ret = p9_client_read(fid, iocb->ki_pos, to, &err); v9fs_file_read_iter() 393 iocb->ki_pos += ret; v9fs_file_read_iter() 406 v9fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from) v9fs_file_write_iter() argument 408 struct file *file = iocb->ki_filp; v9fs_file_write_iter() 413 retval = generic_write_checks(iocb, from); v9fs_file_write_iter() 417 origin = iocb->ki_pos; v9fs_file_write_iter() 418 retval = p9_client_write(file->private_data, iocb->ki_pos, from, &err); v9fs_file_write_iter() 428 iocb->ki_pos += retval; v9fs_file_write_iter() 430 if (iocb->ki_pos > i_size) { v9fs_file_write_iter() 431 inode_add_bytes(inode, iocb->ki_pos - i_size); v9fs_file_write_iter() 432 i_size_write(inode, iocb->ki_pos); v9fs_file_write_iter() 574 v9fs_mmap_file_read_iter(struct kiocb *iocb, struct iov_iter *to) v9fs_mmap_file_read_iter() argument 577 return v9fs_file_read_iter(iocb, to); v9fs_mmap_file_read_iter() 589 v9fs_mmap_file_write_iter(struct kiocb *iocb, struct iov_iter *from) v9fs_mmap_file_write_iter() argument 595 return v9fs_file_write_iter(iocb, from); v9fs_mmap_file_write_iter()
|
H A D | vfs_addr.c | 233 * @iocb: target I/O control block 248 v9fs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t pos) v9fs_direct_IO() argument 250 struct file *file = iocb->ki_filp; v9fs_direct_IO()
|
/linux-4.1.27/fs/udf/ |
H A D | file.c | 102 static ssize_t udf_adinicb_direct_IO(struct kiocb *iocb, struct iov_iter *iter, udf_adinicb_direct_IO() argument 117 static ssize_t udf_file_write_iter(struct kiocb *iocb, struct iov_iter *from) udf_file_write_iter() argument 120 struct file *file = iocb->ki_filp; udf_file_write_iter() 127 retval = generic_write_checks(iocb, from); udf_file_write_iter() 133 loff_t end = iocb->ki_pos + iov_iter_count(from); udf_file_write_iter() 150 retval = __generic_file_write_iter(iocb, from); udf_file_write_iter() 158 err = generic_write_sync(file, iocb->ki_pos - retval, retval); udf_file_write_iter()
|
H A D | inode.c | 217 static ssize_t udf_direct_IO(struct kiocb *iocb, struct iov_iter *iter, udf_direct_IO() argument 220 struct file *file = iocb->ki_filp; udf_direct_IO() 226 ret = blockdev_direct_IO(iocb, inode, iter, offset, udf_get_block); udf_direct_IO()
|
/linux-4.1.27/fs/xfs/ |
H A D | xfs_file.c | 267 struct kiocb *iocb, xfs_file_read_iter() 270 struct file *file = iocb->ki_filp; xfs_file_read_iter() 278 loff_t pos = iocb->ki_pos; xfs_file_read_iter() 282 if (unlikely(iocb->ki_flags & IOCB_DIRECT)) xfs_file_read_iter() 349 ret = generic_file_read_iter(iocb, to); xfs_file_read_iter() 547 struct kiocb *iocb, xfs_file_aio_write_checks() 551 struct file *file = iocb->ki_filp; xfs_file_aio_write_checks() 558 error = generic_write_checks(iocb, from); xfs_file_aio_write_checks() 582 if (iocb->ki_pos > i_size_read(inode)) { xfs_file_aio_write_checks() 603 error = xfs_zero_eof(ip, iocb->ki_pos, i_size_read(inode), &zero); xfs_file_aio_write_checks() 656 struct kiocb *iocb, xfs_file_dio_aio_write() 659 struct file *file = iocb->ki_filp; xfs_file_dio_aio_write() 668 loff_t pos = iocb->ki_pos; xfs_file_dio_aio_write() 706 ret = xfs_file_aio_write_checks(iocb, from, &iolock); xfs_file_dio_aio_write() 710 pos = iocb->ki_pos; xfs_file_dio_aio_write() 741 trace_xfs_file_direct_write(ip, count, iocb->ki_pos, 0); xfs_file_dio_aio_write() 744 ret = mapping->a_ops->direct_IO(iocb, &data, pos); xfs_file_dio_aio_write() 756 iocb->ki_pos = pos; xfs_file_dio_aio_write() 768 struct kiocb *iocb, xfs_file_buffered_aio_write() 771 struct file *file = iocb->ki_filp; xfs_file_buffered_aio_write() 781 ret = xfs_file_aio_write_checks(iocb, from, &iolock); xfs_file_buffered_aio_write() 790 iocb->ki_pos, 0); xfs_file_buffered_aio_write() 791 ret = generic_perform_write(file, from, iocb->ki_pos); xfs_file_buffered_aio_write() 793 iocb->ki_pos += ret; xfs_file_buffered_aio_write() 827 struct kiocb *iocb, xfs_file_write_iter() 830 struct file *file = iocb->ki_filp; xfs_file_write_iter() 845 if (unlikely(iocb->ki_flags & IOCB_DIRECT)) xfs_file_write_iter() 846 ret = xfs_file_dio_aio_write(iocb, from); xfs_file_write_iter() 848 ret = xfs_file_buffered_aio_write(iocb, from); xfs_file_write_iter() 856 err = generic_write_sync(file, iocb->ki_pos - ret, ret); xfs_file_write_iter() 266 xfs_file_read_iter( struct kiocb *iocb, struct iov_iter *to) xfs_file_read_iter() argument 546 xfs_file_aio_write_checks( struct kiocb *iocb, struct iov_iter *from, int *iolock) xfs_file_aio_write_checks() argument 655 xfs_file_dio_aio_write( struct kiocb *iocb, struct iov_iter *from) xfs_file_dio_aio_write() argument 767 xfs_file_buffered_aio_write( struct kiocb *iocb, struct iov_iter *from) xfs_file_buffered_aio_write() argument 826 xfs_file_write_iter( struct kiocb *iocb, struct iov_iter *from) xfs_file_write_iter() argument
|
H A D | xfs_aops.c | 1535 struct kiocb *iocb, xfs_end_io_direct_write() 1540 struct inode *inode = file_inode(iocb->ki_filp); xfs_end_io_direct_write() 1612 struct kiocb *iocb, xfs_vm_direct_IO() 1616 struct inode *inode = iocb->ki_filp->f_mapping->host; xfs_vm_direct_IO() 1620 return __blockdev_direct_IO(iocb, inode, bdev, iter, offset, xfs_vm_direct_IO() 1625 return __blockdev_direct_IO(iocb, inode, bdev, iter, offset, xfs_vm_direct_IO() 1534 xfs_end_io_direct_write( struct kiocb *iocb, loff_t offset, ssize_t size, void *private) xfs_end_io_direct_write() argument 1611 xfs_vm_direct_IO( struct kiocb *iocb, struct iov_iter *iter, loff_t offset) xfs_vm_direct_IO() argument
|
/linux-4.1.27/fs/ext4/ |
H A D | file.c | 91 ext4_file_write_iter(struct kiocb *iocb, struct iov_iter *from) ext4_file_write_iter() argument 93 struct file *file = iocb->ki_filp; ext4_file_write_iter() 94 struct inode *inode = file_inode(iocb->ki_filp); ext4_file_write_iter() 97 int o_direct = iocb->ki_flags & IOCB_DIRECT; ext4_file_write_iter() 107 !is_sync_kiocb(iocb) && ext4_file_write_iter() 108 (iocb->ki_flags & IOCB_APPEND || ext4_file_write_iter() 109 ext4_unaligned_aio(inode, from, iocb->ki_pos))) { ext4_file_write_iter() 116 ret = generic_write_checks(iocb, from); ext4_file_write_iter() 127 if (iocb->ki_pos >= sbi->s_bitmap_maxbytes) { ext4_file_write_iter() 131 iov_iter_truncate(from, sbi->s_bitmap_maxbytes - iocb->ki_pos); ext4_file_write_iter() 134 iocb->private = &overwrite; ext4_file_write_iter() 137 loff_t pos = iocb->ki_pos; ext4_file_write_iter() 170 ret = __generic_file_write_iter(iocb, from); ext4_file_write_iter() 176 err = generic_write_sync(file, iocb->ki_pos - ret, ret); ext4_file_write_iter()
|
H A D | inode.c | 3063 static void ext4_end_io_dio(struct kiocb *iocb, loff_t offset, ext4_end_io_dio() argument 3066 ext4_io_end_t *io_end = iocb->private; ext4_end_io_dio() 3073 "for inode %lu, iocb 0x%p, offset %llu, size %zd\n", ext4_end_io_dio() 3074 iocb->private, io_end->inode->i_ino, iocb, offset, ext4_end_io_dio() 3077 iocb->private = NULL; ext4_end_io_dio() 3102 static ssize_t ext4_ext_direct_IO(struct kiocb *iocb, struct iov_iter *iter, ext4_ext_direct_IO() argument 3105 struct file *file = iocb->ki_filp; ext4_ext_direct_IO() 3117 return ext4_ind_direct_IO(iocb, iter, offset); ext4_ext_direct_IO() 3119 BUG_ON(iocb->private == NULL); ext4_ext_direct_IO() 3130 overwrite = *((int *)iocb->private); ext4_ext_direct_IO() 3154 * case, we allocate an io_end structure to hook to the iocb. ext4_ext_direct_IO() 3156 iocb->private = NULL; ext4_ext_direct_IO() 3161 if (!is_sync_kiocb(iocb)) { ext4_ext_direct_IO() 3171 iocb->private = ext4_get_io_end(io_end); ext4_ext_direct_IO() 3187 ret = dax_do_io(iocb, inode, iter, offset, get_block_func, ext4_ext_direct_IO() 3190 ret = __blockdev_direct_IO(iocb, inode, ext4_ext_direct_IO() 3199 * Note that in that case iocb->private can be already set to NULL ext4_ext_direct_IO() 3207 * called so we have to put iocb's reference. ext4_ext_direct_IO() 3209 if (ret <= 0 && ret != -EIOCBQUEUED && iocb->private) { ext4_ext_direct_IO() 3210 WARN_ON(iocb->private != io_end); ext4_ext_direct_IO() 3213 iocb->private = NULL; ext4_ext_direct_IO() 3242 static ssize_t ext4_direct_IO(struct kiocb *iocb, struct iov_iter *iter, ext4_direct_IO() argument 3245 struct file *file = iocb->ki_filp; ext4_direct_IO() 3267 ret = ext4_ext_direct_IO(iocb, iter, offset); ext4_direct_IO() 3269 ret = ext4_ind_direct_IO(iocb, iter, offset); ext4_direct_IO()
|
H A D | indirect.c | 645 ssize_t ext4_ind_direct_IO(struct kiocb *iocb, struct iov_iter *iter, ext4_ind_direct_IO() argument 648 struct file *file = iocb->ki_filp; ext4_ind_direct_IO() 693 ret = dax_do_io(iocb, inode, iter, offset, ext4_ind_direct_IO() 696 ret = __blockdev_direct_IO(iocb, inode, ext4_ind_direct_IO() 704 ret = dax_do_io(iocb, inode, iter, offset, ext4_ind_direct_IO() 707 ret = blockdev_direct_IO(iocb, inode, iter, offset, ext4_ind_direct_IO()
|
H A D | ext4.h | 2330 extern ssize_t ext4_ind_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
|
/linux-4.1.27/drivers/s390/char/ |
H A D | fs3270.c | 330 struct raw3270_iocb iocb; fs3270_ioctl() local 356 iocb.model = fp->view.model; fs3270_ioctl() 357 iocb.line_cnt = fp->view.rows; fs3270_ioctl() 358 iocb.col_cnt = fp->view.cols; fs3270_ioctl() 359 iocb.pf_cnt = 24; fs3270_ioctl() 360 iocb.re_cnt = 20; fs3270_ioctl() 361 iocb.map = 0; fs3270_ioctl() 362 if (copy_to_user(argp, &iocb, sizeof(struct raw3270_iocb))) fs3270_ioctl()
|
/linux-4.1.27/drivers/usb/gadget/legacy/ |
H A D | inode.c | 431 struct kiocb *iocb; member in struct:kiocb_priv 440 static int ep_aio_cancel(struct kiocb *iocb) ep_aio_cancel() argument 442 struct kiocb_priv *priv = iocb->private; ep_aio_cancel() 463 struct kiocb *iocb = priv->iocb; ep_user_copy_worker() local 472 /* completing the iocb can drop the ctx and mm, don't touch mm after */ ep_user_copy_worker() 473 iocb->ki_complete(iocb, ret, ret); ep_user_copy_worker() 482 struct kiocb *iocb = req->context; ep_aio_complete() local 483 struct kiocb_priv *priv = iocb->private; ep_aio_complete() 499 iocb->private = NULL; ep_aio_complete() 502 iocb->ki_complete(iocb, req->actual ? req->actual : req->status, ep_aio_complete() 521 static ssize_t ep_aio(struct kiocb *iocb, ep_aio() argument 530 iocb->private = priv; ep_aio() 531 priv->iocb = iocb; ep_aio() 533 kiocb_set_cancel_fn(iocb, ep_aio_cancel); ep_aio() 556 req->context = iocb; ep_aio() 574 ep_read_iter(struct kiocb *iocb, struct iov_iter *to) ep_read_iter() argument 576 struct file *file = iocb->ki_filp; ep_read_iter() 588 !is_sync_kiocb(iocb)) { ep_read_iter() 606 if (is_sync_kiocb(iocb)) { ep_read_iter() 620 value = ep_aio(iocb, priv, epdata, buf, len); ep_read_iter() 633 ep_write_iter(struct kiocb *iocb, struct iov_iter *from) ep_write_iter() argument 635 struct file *file = iocb->ki_filp; ep_write_iter() 650 !is_sync_kiocb(iocb)) { ep_write_iter() 676 } else if (is_sync_kiocb(iocb)) { ep_write_iter() 682 value = ep_aio(iocb, priv, epdata, buf, len); ep_write_iter()
|
/linux-4.1.27/fs/cifs/ |
H A D | cifsfs.h | 94 extern ssize_t cifs_user_readv(struct kiocb *iocb, struct iov_iter *to); 95 extern ssize_t cifs_strict_readv(struct kiocb *iocb, struct iov_iter *to); 96 extern ssize_t cifs_user_writev(struct kiocb *iocb, struct iov_iter *from); 97 extern ssize_t cifs_strict_writev(struct kiocb *iocb, struct iov_iter *from);
|
H A D | file.c | 2562 ssize_t cifs_user_writev(struct kiocb *iocb, struct iov_iter *from) cifs_user_writev() argument 2564 struct file *file = iocb->ki_filp; cifs_user_writev() 2580 rc = generic_write_checks(iocb, from); cifs_user_writev() 2594 rc = cifs_write_from_iter(iocb->ki_pos, iov_iter_count(from), from, cifs_user_writev() 2634 wdata->offset - iocb->ki_pos); cifs_user_writev() 2654 iocb->ki_pos += total_written; cifs_user_writev() 2661 cifs_writev(struct kiocb *iocb, struct iov_iter *from) cifs_writev() argument 2663 struct file *file = iocb->ki_filp; cifs_writev() 2677 rc = generic_write_checks(iocb, from); cifs_writev() 2681 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(from), cifs_writev() 2684 rc = __generic_file_write_iter(iocb, from); cifs_writev() 2691 ssize_t err = generic_write_sync(file, iocb->ki_pos - rc, rc); cifs_writev() 2700 cifs_strict_writev(struct kiocb *iocb, struct iov_iter *from) cifs_strict_writev() argument 2702 struct inode *inode = file_inode(iocb->ki_filp); cifs_strict_writev() 2706 iocb->ki_filp->private_data; cifs_strict_writev() 2718 written = generic_file_write_iter(iocb, from); cifs_strict_writev() 2721 written = cifs_writev(iocb, from); cifs_strict_writev() 2730 written = cifs_user_writev(iocb, from); cifs_strict_writev() 2971 ssize_t cifs_user_readv(struct kiocb *iocb, struct iov_iter *to) cifs_user_readv() argument 2973 struct file *file = iocb->ki_filp; cifs_user_readv() 2977 loff_t offset = iocb->ki_pos; cifs_user_readv() 3069 iocb->ki_pos += total_read; cifs_user_readv() 3076 cifs_strict_readv(struct kiocb *iocb, struct iov_iter *to) cifs_strict_readv() argument 3078 struct inode *inode = file_inode(iocb->ki_filp); cifs_strict_readv() 3082 iocb->ki_filp->private_data; cifs_strict_readv() 3095 return cifs_user_readv(iocb, to); cifs_strict_readv() 3100 return generic_file_read_iter(iocb, to); cifs_strict_readv() 3107 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(to), cifs_strict_readv() 3110 rc = generic_file_read_iter(iocb, to); cifs_strict_readv() 3857 cifs_direct_io(struct kiocb *iocb, struct iov_iter *iter, loff_t pos) cifs_direct_io() argument
|
H A D | cifsfs.c | 743 cifs_loose_read_iter(struct kiocb *iocb, struct iov_iter *iter) cifs_loose_read_iter() argument 746 struct inode *inode = file_inode(iocb->ki_filp); cifs_loose_read_iter() 752 return generic_file_read_iter(iocb, iter); cifs_loose_read_iter() 755 static ssize_t cifs_file_write_iter(struct kiocb *iocb, struct iov_iter *from) cifs_file_write_iter() argument 757 struct inode *inode = file_inode(iocb->ki_filp); cifs_file_write_iter() 766 written = generic_file_write_iter(iocb, from); cifs_file_write_iter()
|
/linux-4.1.27/drivers/scsi/qla2xxx/ |
H A D | qla_target.c | 106 int fn, void *iocb, int flags); 496 static int qlt_reset(struct scsi_qla_host *vha, void *iocb, int mcmd) qlt_reset() argument 503 struct imm_ntfy_from_isp *n = (struct imm_ntfy_from_isp *)iocb; qlt_reset() 504 struct atio_from_isp *a = (struct atio_from_isp *)iocb; qlt_reset() 556 iocb, QLA24XX_MGMT_SEND_NACK); qlt_reset() 2740 "iocb(s) %p Returned STATUS.\n", sts); qlt_handle_dif_error() 3815 int fn, void *iocb, int flags) qlt_issue_task_mgmt() 3820 struct atio_from_isp *a = (struct atio_from_isp *)iocb; qlt_issue_task_mgmt() 3835 if (iocb) { qlt_issue_task_mgmt() 3836 memcpy(&mcmd->orig_iocb.imm_ntfy, iocb, qlt_issue_task_mgmt() 3924 static int qlt_handle_task_mgmt(struct scsi_qla_host *vha, void *iocb) qlt_handle_task_mgmt() argument 3926 struct atio_from_isp *a = (struct atio_from_isp *)iocb; qlt_handle_task_mgmt() 3946 return qlt_sched_sess_work(tgt, QLA_TGT_SESS_WORK_TM, iocb, qlt_handle_task_mgmt() 3953 return qlt_issue_task_mgmt(sess, unpacked_lun, fn, iocb, 0); qlt_handle_task_mgmt() 3958 struct imm_ntfy_from_isp *iocb, struct qla_tgt_sess *sess) __qlt_abort_task() 3960 struct atio_from_isp *a = (struct atio_from_isp *)iocb; __qlt_abort_task() 3976 memcpy(&mcmd->orig_iocb.imm_ntfy, iocb, __qlt_abort_task() 3984 le16_to_cpu(iocb->u.isp2x.seq_id)); __qlt_abort_task() 3998 struct imm_ntfy_from_isp *iocb) qlt_abort_task() 4004 loop_id = GET_TARGET_ID(ha, (struct atio_from_isp *)iocb); qlt_abort_task() 4012 QLA_TGT_SESS_WORK_ABORT, iocb, sizeof(*iocb)); qlt_abort_task() 4015 return __qlt_abort_task(vha, iocb, sess); qlt_abort_task() 4148 struct imm_ntfy_from_isp *iocb) qlt_24xx_handle_els() 4159 wwn = wwn_to_u64(iocb->u.isp24.port_name); qlt_24xx_handle_els() 4161 port_id.b.domain = iocb->u.isp24.port_id[2]; qlt_24xx_handle_els() 4162 port_id.b.area = iocb->u.isp24.port_id[1]; qlt_24xx_handle_els() 4163 port_id.b.al_pa = iocb->u.isp24.port_id[0]; qlt_24xx_handle_els() 4166 loop_id = le16_to_cpu(iocb->u.isp24.nport_handle); qlt_24xx_handle_els() 4170 vha->vp_idx, iocb->u.isp24.port_id, iocb->u.isp24.status_subcode); qlt_24xx_handle_els() 4175 switch (iocb->u.isp24.status_subcode) { qlt_24xx_handle_els() 4200 qlt_swap_imm_ntfy_iocb(iocb, &sess->tm_iocb); qlt_24xx_handle_els() 4202 qlt_send_term_imm_notif(vha, iocb, 1); qlt_24xx_handle_els() 4214 memcpy(&sess->tm_iocb, iocb, sizeof(sess->tm_iocb)); qlt_24xx_handle_els() 4241 wd3_lo = le16_to_cpu(iocb->u.isp24.u.prli.wd3_lo); qlt_24xx_handle_els() 4257 qlt_send_term_imm_notif(vha, iocb, 1); qlt_24xx_handle_els() 4268 sess->loop_id, sess, iocb->u.isp24.nport_handle); qlt_24xx_handle_els() 4294 res = qlt_reset(vha, iocb, QLA_TGT_NEXUS_LOSS_SESS); qlt_24xx_handle_els() 4313 "received\n", vha->vp_idx, iocb->u.isp24.status_subcode); qlt_24xx_handle_els() 4314 res = qlt_reset(vha, iocb, QLA_TGT_NEXUS_LOSS_SESS); qlt_24xx_handle_els() 4678 struct imm_ntfy_from_isp *iocb) qlt_prepare_srr_imm() 4691 memcpy(&imm->imm_ntfy, iocb, sizeof(imm->imm_ntfy)); qlt_prepare_srr_imm() 4700 imm, imm->srr_id, iocb->u.isp24.srr_ui); qlt_prepare_srr_imm() 4758 qlt_send_notify_ack(vha, iocb, 0, 0, 0, qlt_prepare_srr_imm() 4768 struct imm_ntfy_from_isp *iocb) qlt_handle_imm_notify() 4775 status = le16_to_cpu(iocb->u.isp2x.status); qlt_handle_imm_notify() 4781 vha->vp_idx, le16_to_cpu(iocb->u.isp24.nport_handle), qlt_handle_imm_notify() 4782 iocb->u.isp24.status_subcode); qlt_handle_imm_notify() 4784 if (qlt_reset(vha, iocb, QLA_TGT_ABORT_ALL) == 0) qlt_handle_imm_notify() 4795 le16_to_cpu(iocb->u.isp24.nport_handle), qlt_handle_imm_notify() 4796 iocb->u.isp24.status_subcode); qlt_handle_imm_notify() 4801 memcpy(&tgt->link_reinit_iocb, iocb, sizeof(*iocb)); qlt_handle_imm_notify() 4815 le16_to_cpu(iocb->u.isp24.nport_handle), qlt_handle_imm_notify() 4816 iocb->u.isp24.status_subcode); qlt_handle_imm_notify() 4818 if (qlt_reset(vha, iocb, QLA_TGT_NEXUS_LOSS_SESS) == 0) qlt_handle_imm_notify() 4826 if (qlt_reset(vha, iocb, QLA_TGT_NEXUS_LOSS) == 0) qlt_handle_imm_notify() 4835 if (qlt_reset(vha, iocb, QLA_TGT_ABORT_ALL) == 0) qlt_handle_imm_notify() 4845 if (qlt_reset(vha, iocb, QLA_TGT_NEXUS_LOSS) == 0) qlt_handle_imm_notify() 4860 le16_to_cpu(iocb->u.isp2x.seq_id), qlt_handle_imm_notify() 4861 GET_TARGET_ID(ha, (struct atio_from_isp *)iocb), qlt_handle_imm_notify() 4862 le16_to_cpu(iocb->u.isp2x.lun)); qlt_handle_imm_notify() 4863 if (qlt_abort_task(vha, iocb) == 0) qlt_handle_imm_notify() 4876 vha->vp_idx, iocb->u.isp2x.task_flags); qlt_handle_imm_notify() 4877 if (qlt_handle_task_mgmt(vha, iocb) == 0) qlt_handle_imm_notify() 4882 if (qlt_24xx_handle_els(vha, iocb) == 0) qlt_handle_imm_notify() 4887 qlt_prepare_srr_imm(vha, iocb); qlt_handle_imm_notify() 4899 qlt_send_notify_ack(vha, iocb, add_flags, 0, 0, 0, 0, 0); qlt_handle_imm_notify() 5665 void *iocb; qlt_tmr_work() local 5694 iocb = a; qlt_tmr_work() 5700 rc = qlt_issue_task_mgmt(sess, unpacked_lun, fn, iocb, 0); qlt_tmr_work() 3814 qlt_issue_task_mgmt(struct qla_tgt_sess *sess, uint32_t lun, int fn, void *iocb, int flags) qlt_issue_task_mgmt() argument 3957 __qlt_abort_task(struct scsi_qla_host *vha, struct imm_ntfy_from_isp *iocb, struct qla_tgt_sess *sess) __qlt_abort_task() argument 3997 qlt_abort_task(struct scsi_qla_host *vha, struct imm_ntfy_from_isp *iocb) qlt_abort_task() argument 4147 qlt_24xx_handle_els(struct scsi_qla_host *vha, struct imm_ntfy_from_isp *iocb) qlt_24xx_handle_els() argument 4677 qlt_prepare_srr_imm(struct scsi_qla_host *vha, struct imm_ntfy_from_isp *iocb) qlt_prepare_srr_imm() argument 4767 qlt_handle_imm_notify(struct scsi_qla_host *vha, struct imm_ntfy_from_isp *iocb) qlt_handle_imm_notify() argument
|
H A D | qla_bsg.h | 41 * To support bidirectional iocb
|
H A D | qla_isr.c | 1188 struct req_que *req, void *iocb) qla2x00_get_sp_from_handle() 1191 sts_entry_t *pkt = iocb; qla2x00_get_sp_from_handle() 1551 struct srb_iocb *iocb; qla24xx_tm_iocb_entry() local 1558 iocb = &sp->u.iocb_cmd; qla24xx_tm_iocb_entry() 1561 iocb->u.tmf.data = QLA_SUCCESS; qla24xx_tm_iocb_entry() 1567 iocb->u.tmf.data = QLA_FUNCTION_FAILED; qla24xx_tm_iocb_entry() 1572 iocb->u.tmf.data = QLA_FUNCTION_FAILED; qla24xx_tm_iocb_entry() 1583 iocb->u.tmf.data = QLA_FUNCTION_FAILED; qla24xx_tm_iocb_entry() 1587 if (iocb->u.tmf.data != QLA_SUCCESS) qla24xx_tm_iocb_entry() 1749 "iocb(s) %p Returned STATUS.\n", sts24); qla2x00_handle_dif_error() 1187 qla2x00_get_sp_from_handle(scsi_qla_host_t *vha, const char *func, struct req_que *req, void *iocb) qla2x00_get_sp_from_handle() argument
|
H A D | qla_iocb.c | 1004 /* add new list to cmd iocb or last list */ qla24xx_walk_and_build_sglist_no_difb() 1106 /* add new list to cmd iocb or last list */ for_each_sg() 1198 /* add new list to cmd iocb or last list */ for_each_sg() 1340 cmd_pkt->fcp_rsp_dseg_len = 0; /* Let response come in status iocb */ qla24xx_build_scsi_crc_2_iocbs() 2012 struct srb_iocb *iocb = &sp->u.iocb_cmd; qla24xx_tm_iocb() local 2015 flags = iocb->u.tmf.flags; qla24xx_tm_iocb() 2016 lun = iocb->u.tmf.lun; qla24xx_tm_iocb() 2709 * are bundled in continuation iocb qla25xx_build_bidir_iocb()
|
H A D | qla_target.h | 117 #define GET_TARGET_ID(ha, iocb) ((HAS_EXTENDED_IDS(ha)) \ 118 ? le16_to_cpu((iocb)->u.isp2x.target.extended) \ 119 : (uint16_t)(iocb)->u.isp2x.target.id.standard)
|
H A D | qla_init.c | 49 struct srb_iocb *iocb; qla2x00_sp_timeout() local 58 iocb = &sp->u.iocb_cmd; qla2x00_sp_timeout() 59 iocb->timeout(sp); qla2x00_sp_timeout() 68 struct srb_iocb *iocb = &sp->u.iocb_cmd; qla2x00_sp_free() local 71 del_timer(&iocb->timer); qla2x00_sp_free() 2338 "Sending verify iocb.\n"); qla2x00_fw_ready()
|
/linux-4.1.27/arch/s390/hypfs/ |
H A D | inode.c | 147 static ssize_t hypfs_read_iter(struct kiocb *iocb, struct iov_iter *to) hypfs_read_iter() argument 149 struct file *file = iocb->ki_filp; hypfs_read_iter() 152 loff_t pos = iocb->ki_pos; hypfs_read_iter() 162 iocb->ki_pos = pos + count; hypfs_read_iter() 167 static ssize_t hypfs_write_iter(struct kiocb *iocb, struct iov_iter *from) hypfs_write_iter() argument 170 struct super_block *sb = file_inode(iocb->ki_filp)->i_sb; hypfs_write_iter()
|
/linux-4.1.27/fs/fuse/ |
H A D | file.c | 565 bool is_sync = is_sync_kiocb(io->iocb); fuse_aio_complete() 583 struct inode *inode = file_inode(io->iocb->ki_filp); fuse_aio_complete() 592 io->iocb->ki_complete(io->iocb, res, 0); fuse_aio_complete() 904 static ssize_t fuse_file_read_iter(struct kiocb *iocb, struct iov_iter *to) fuse_file_read_iter() argument 906 struct inode *inode = iocb->ki_filp->f_mapping->host; fuse_file_read_iter() 915 (iocb->ki_pos + iov_iter_count(to) > i_size_read(inode))) { fuse_file_read_iter() 917 err = fuse_update_attributes(inode, NULL, iocb->ki_filp, NULL); fuse_file_read_iter() 922 return generic_file_read_iter(iocb, to); fuse_file_read_iter() 1151 static ssize_t fuse_file_write_iter(struct kiocb *iocb, struct iov_iter *from) fuse_file_write_iter() argument 1153 struct file *file = iocb->ki_filp; fuse_file_write_iter() 1167 return generic_file_write_iter(iocb, from); fuse_file_write_iter() 1175 err = generic_write_checks(iocb, from); fuse_file_write_iter() 1187 if (iocb->ki_flags & IOCB_DIRECT) { fuse_file_write_iter() 1188 loff_t pos = iocb->ki_pos; fuse_file_write_iter() 1189 written = generic_file_direct_write(iocb, from, pos); fuse_file_write_iter() 1212 iocb->ki_pos = pos + written_buffered; fuse_file_write_iter() 1214 written = fuse_perform_write(file, mapping, from, iocb->ki_pos); fuse_file_write_iter() 1216 iocb->ki_pos += written; fuse_file_write_iter() 1406 static ssize_t fuse_direct_read_iter(struct kiocb *iocb, struct iov_iter *to) fuse_direct_read_iter() argument 1408 struct fuse_io_priv io = FUSE_IO_PRIV_SYNC(iocb->ki_filp); fuse_direct_read_iter() 1409 return __fuse_direct_read(&io, to, &iocb->ki_pos); fuse_direct_read_iter() 1412 static ssize_t fuse_direct_write_iter(struct kiocb *iocb, struct iov_iter *from) fuse_direct_write_iter() argument 1414 struct file *file = iocb->ki_filp; fuse_direct_write_iter() 1424 res = generic_write_checks(iocb, from); fuse_direct_write_iter() 1426 res = fuse_direct_io(&io, from, &iocb->ki_pos, FUSE_DIO_WRITE); fuse_direct_write_iter() 1429 fuse_write_update_size(inode, iocb->ki_pos); fuse_direct_write_iter() 2784 fuse_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t offset) fuse_direct_IO() argument 2788 struct file *file = iocb->ki_filp; fuse_direct_IO() 2796 bool is_sync = is_sync_kiocb(iocb); fuse_direct_IO() 2830 io->iocb = iocb; fuse_direct_IO()
|
H A D | dev.c | 1358 static ssize_t fuse_dev_read(struct kiocb *iocb, struct iov_iter *to) fuse_dev_read() argument 1361 struct file *file = iocb->ki_filp; fuse_dev_read() 1967 static ssize_t fuse_dev_write(struct kiocb *iocb, struct iov_iter *from) fuse_dev_write() argument 1970 struct fuse_conn *fc = fuse_get_conn(iocb->ki_filp); fuse_dev_write()
|
H A D | fuse_i.h | 266 struct kiocb *iocb; member in struct:fuse_io_priv
|
/linux-4.1.27/mm/ |
H A D | filemap.c | 1682 * @iocb: kernel I/O control block 1689 generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter) generic_file_read_iter() argument 1691 struct file *file = iocb->ki_filp; generic_file_read_iter() 1693 loff_t *ppos = &iocb->ki_pos; generic_file_read_iter() 1696 if (iocb->ki_flags & IOCB_DIRECT) { generic_file_read_iter() 1709 retval = mapping->a_ops->direct_IO(iocb, &data, pos); generic_file_read_iter() 2262 inline ssize_t generic_write_checks(struct kiocb *iocb, struct iov_iter *from) generic_write_checks() argument 2264 struct file *file = iocb->ki_filp; generic_write_checks() 2273 if (iocb->ki_flags & IOCB_APPEND) generic_write_checks() 2274 iocb->ki_pos = i_size_read(inode); generic_write_checks() 2276 pos = iocb->ki_pos; generic_write_checks() 2279 if (iocb->ki_pos >= limit) { generic_write_checks() 2333 generic_file_direct_write(struct kiocb *iocb, struct iov_iter *from, loff_t pos) generic_file_direct_write() argument 2335 struct file *file = iocb->ki_filp; generic_file_direct_write() 2371 written = mapping->a_ops->direct_IO(iocb, &data, pos); generic_file_direct_write() 2393 iocb->ki_pos = pos; generic_file_direct_write() 2514 * @iocb: IO state structure (file, offset, etc.) 2529 ssize_t __generic_file_write_iter(struct kiocb *iocb, struct iov_iter *from) __generic_file_write_iter() argument 2531 struct file *file = iocb->ki_filp; __generic_file_write_iter() 2548 if (iocb->ki_flags & IOCB_DIRECT) { __generic_file_write_iter() 2551 written = generic_file_direct_write(iocb, from, iocb->ki_pos); __generic_file_write_iter() 2562 status = generic_perform_write(file, from, pos = iocb->ki_pos); __generic_file_write_iter() 2582 iocb->ki_pos = endbyte + 1; __generic_file_write_iter() 2594 written = generic_perform_write(file, from, iocb->ki_pos); __generic_file_write_iter() 2596 iocb->ki_pos += written; __generic_file_write_iter() 2606 * @iocb: IO state structure 2613 ssize_t generic_file_write_iter(struct kiocb *iocb, struct iov_iter *from) generic_file_write_iter() argument 2615 struct file *file = iocb->ki_filp; generic_file_write_iter() 2620 ret = generic_write_checks(iocb, from); generic_file_write_iter() 2622 ret = __generic_file_write_iter(iocb, from); generic_file_write_iter() 2628 err = generic_write_sync(file, iocb->ki_pos - ret, ret); generic_file_write_iter()
|
H A D | shmem.c | 1519 static ssize_t shmem_file_read_iter(struct kiocb *iocb, struct iov_iter *to) shmem_file_read_iter() argument 1521 struct file *file = iocb->ki_filp; shmem_file_read_iter() 1529 loff_t *ppos = &iocb->ki_pos; shmem_file_read_iter()
|
/linux-4.1.27/crypto/ |
H A D | algif_skcipher.c | 64 struct kiocb *iocb; member in struct:skcipher_async_req 109 struct kiocb *iocb = sreq->iocb; skcipher_async_cb() local 114 iocb->ki_complete(iocb, err, err); skcipher_async_cb() 530 sreq->iocb = msg->msg_iocb; skcipher_recvmsg_async()
|
/linux-4.1.27/arch/um/os-Linux/ |
H A D | aio.c | 41 static long io_submit(aio_context_t ctx, long nr, struct iocb **iocbpp) io_submit() 69 struct iocb *iocbp = & ((struct iocb) { do_aio()
|
/linux-4.1.27/fs/jfs/ |
H A D | inode.c | 333 static ssize_t jfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, jfs_direct_IO() argument 336 struct file *file = iocb->ki_filp; jfs_direct_IO() 342 ret = blockdev_direct_IO(iocb, inode, iter, offset, jfs_get_block); jfs_direct_IO()
|
/linux-4.1.27/fs/ecryptfs/ |
H A D | file.c | 46 static ssize_t ecryptfs_read_update_atime(struct kiocb *iocb, ecryptfs_read_update_atime() argument 51 struct file *file = iocb->ki_filp; ecryptfs_read_update_atime() 53 rc = generic_file_read_iter(iocb, to); ecryptfs_read_update_atime()
|
/linux-4.1.27/drivers/bluetooth/ |
H A D | hci_vhci.c | 302 static ssize_t vhci_write(struct kiocb *iocb, struct iov_iter *from) vhci_write() argument 304 struct file *file = iocb->ki_filp; vhci_write()
|
/linux-4.1.27/fs/hfsplus/ |
H A D | inode.c | 125 static ssize_t hfsplus_direct_IO(struct kiocb *iocb, struct iov_iter *iter, hfsplus_direct_IO() argument 128 struct file *file = iocb->ki_filp; hfsplus_direct_IO() 134 ret = blockdev_direct_IO(iocb, inode, iter, offset, hfsplus_get_block); hfsplus_direct_IO()
|
/linux-4.1.27/drivers/staging/lustre/lustre/include/lustre/ |
H A D | lustre_errno.h | 199 #define LUSTRE_EIOCBQUEUED 529 /* iocb queued, will get completion 201 #define LUSTRE_EIOCBRETRY 530 /* iocb queued, will trigger a retry */
|
/linux-4.1.27/arch/mips/fw/cfe/ |
H A D | cfe_api.c | 24 * call the standard "iocb" interface entry point to CFE). 25 * There should be one routine here per iocb function call.
|
/linux-4.1.27/fs/gfs2/ |
H A D | file.c | 688 * @iocb: The io context 700 static ssize_t gfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *from) gfs2_file_write_iter() argument 702 struct file *file = iocb->ki_filp; gfs2_file_write_iter() 710 gfs2_size_hint(file, iocb->ki_pos, iov_iter_count(from)); gfs2_file_write_iter() 712 if (iocb->ki_flags & IOCB_APPEND) { gfs2_file_write_iter() 721 return generic_file_write_iter(iocb, from); gfs2_file_write_iter()
|
H A D | aops.c | 1041 static ssize_t gfs2_direct_IO(struct kiocb *iocb, struct iov_iter *iter, gfs2_direct_IO() argument 1044 struct file *file = iocb->ki_filp; gfs2_direct_IO() 1097 rv = __blockdev_direct_IO(iocb, inode, inode->i_sb->s_bdev, iter, gfs2_direct_IO()
|
/linux-4.1.27/drivers/net/ |
H A D | macvtap.c | 789 static ssize_t macvtap_write_iter(struct kiocb *iocb, struct iov_iter *from) macvtap_write_iter() argument 791 struct file *file = iocb->ki_filp; macvtap_write_iter() 894 static ssize_t macvtap_read_iter(struct kiocb *iocb, struct iov_iter *to) macvtap_read_iter() argument 896 struct file *file = iocb->ki_filp; macvtap_read_iter() 903 iocb->ki_pos = ret; macvtap_read_iter()
|
H A D | tun.c | 1218 static ssize_t tun_chr_write_iter(struct kiocb *iocb, struct iov_iter *from) tun_chr_write_iter() argument 1220 struct file *file = iocb->ki_filp; tun_chr_write_iter() 1378 static ssize_t tun_chr_read_iter(struct kiocb *iocb, struct iov_iter *to) tun_chr_read_iter() argument 1380 struct file *file = iocb->ki_filp; tun_chr_read_iter() 1390 iocb->ki_pos = ret; tun_chr_read_iter()
|
/linux-4.1.27/fs/hugetlbfs/ |
H A D | inode.c | 219 static ssize_t hugetlbfs_read_iter(struct kiocb *iocb, struct iov_iter *to) hugetlbfs_read_iter() argument 221 struct file *file = iocb->ki_filp; hugetlbfs_read_iter() 225 unsigned long index = iocb->ki_pos >> huge_page_shift(h); hugetlbfs_read_iter() 226 unsigned long offset = iocb->ki_pos & ~huge_page_mask(h); hugetlbfs_read_iter() 277 iocb->ki_pos = ((loff_t)index << huge_page_shift(h)) + offset; hugetlbfs_read_iter()
|
/linux-4.1.27/drivers/char/ |
H A D | mem.c | 610 static ssize_t read_iter_null(struct kiocb *iocb, struct iov_iter *to) read_iter_null() argument 615 static ssize_t write_iter_null(struct kiocb *iocb, struct iov_iter *from) write_iter_null() argument 634 static ssize_t read_iter_zero(struct kiocb *iocb, struct iov_iter *iter) read_iter_zero() argument
|
/linux-4.1.27/fs/ntfs/ |
H A D | file.c | 331 static ssize_t ntfs_prepare_file_for_write(struct kiocb *iocb, ntfs_prepare_file_for_write() argument 338 struct file *file = iocb->ki_filp; ntfs_prepare_file_for_write() 346 (unsigned long long)iocb->ki_pos, ntfs_prepare_file_for_write() 348 err = generic_write_checks(iocb, from); ntfs_prepare_file_for_write() 393 pos = iocb->ki_pos; ntfs_prepare_file_for_write() 1932 * @iocb: IO state structure 1939 static ssize_t ntfs_file_write_iter(struct kiocb *iocb, struct iov_iter *from) ntfs_file_write_iter() argument 1941 struct file *file = iocb->ki_filp; ntfs_file_write_iter() 1949 err = ntfs_prepare_file_for_write(iocb, from); ntfs_file_write_iter() 1951 written = ntfs_perform_write(file, from, iocb->ki_pos); ntfs_file_write_iter() 1955 err = generic_write_sync(file, iocb->ki_pos, written); ntfs_file_write_iter() 1959 iocb->ki_pos += written; ntfs_file_write_iter()
|
/linux-4.1.27/fs/hfs/ |
H A D | inode.c | 127 static ssize_t hfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, hfs_direct_IO() argument 130 struct file *file = iocb->ki_filp; hfs_direct_IO() 136 ret = blockdev_direct_IO(iocb, inode, iter, offset, hfs_get_block); hfs_direct_IO()
|
/linux-4.1.27/fs/afs/ |
H A D | write.c | 627 ssize_t afs_file_write(struct kiocb *iocb, struct iov_iter *from) afs_file_write() argument 629 struct afs_vnode *vnode = AFS_FS_I(file_inode(iocb->ki_filp)); afs_file_write() 645 result = generic_file_write_iter(iocb, from); afs_file_write()
|
/linux-4.1.27/drivers/staging/lustre/lustre/llite/ |
H A D | rw26.c | 362 static ssize_t ll_direct_IO_26(struct kiocb *iocb, struct iov_iter *iter, ll_direct_IO_26() argument 367 struct file *file = iocb->ki_filp; ll_direct_IO_26()
|
H A D | file.c | 1193 static ssize_t ll_file_read_iter(struct kiocb *iocb, struct iov_iter *to) ll_file_read_iter() argument 1206 args->u.normal.via_iocb = iocb; ll_file_read_iter() 1208 result = ll_file_io_generic(env, args, iocb->ki_filp, CIT_READ, ll_file_read_iter() 1209 &iocb->ki_pos, iov_iter_count(to)); ll_file_read_iter() 1217 static ssize_t ll_file_write_iter(struct kiocb *iocb, struct iov_iter *from) ll_file_write_iter() argument 1230 args->u.normal.via_iocb = iocb; ll_file_write_iter() 1232 result = ll_file_io_generic(env, args, iocb->ki_filp, CIT_WRITE, ll_file_write_iter() 1233 &iocb->ki_pos, iov_iter_count(from)); ll_file_write_iter()
|
/linux-4.1.27/arch/s390/kernel/ |
H A D | compat_wrapper.c | 172 COMPAT_SYSCALL_WRAP3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb, struct io_event __user *, result);
|
/linux-4.1.27/fs/btrfs/ |
H A D | file.c | 1678 static ssize_t __btrfs_direct_write(struct kiocb *iocb, __btrfs_direct_write() argument 1682 struct file *file = iocb->ki_filp; __btrfs_direct_write() 1689 written = generic_file_direct_write(iocb, from, pos); __btrfs_direct_write() 1712 iocb->ki_pos = pos + written_buffered; __btrfs_direct_write() 1737 static ssize_t btrfs_file_write_iter(struct kiocb *iocb, btrfs_file_write_iter() argument 1740 struct file *file = iocb->ki_filp; btrfs_file_write_iter() 1752 err = generic_write_checks(iocb, from); btrfs_file_write_iter() 1785 pos = iocb->ki_pos; btrfs_file_write_iter() 1801 if (iocb->ki_flags & IOCB_DIRECT) { btrfs_file_write_iter() 1802 num_written = __btrfs_direct_write(iocb, from, pos); btrfs_file_write_iter() 1806 iocb->ki_pos = pos + num_written; btrfs_file_write_iter()
|
H A D | inode.c | 8283 static ssize_t check_direct_IO(struct btrfs_root *root, struct kiocb *iocb, check_direct_IO() argument 8316 static ssize_t btrfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, btrfs_direct_IO() argument 8319 struct file *file = iocb->ki_filp; btrfs_direct_IO() 8328 if (check_direct_IO(BTRFS_I(inode)->root, iocb, iter, offset)) btrfs_direct_IO() 8376 ret = __blockdev_direct_IO(iocb, inode, btrfs_direct_IO()
|
/linux-4.1.27/tools/usb/ffs-aio-example/simple/device_app/ |
H A D | aio_simple.c | 218 struct iocb *iocb_in, *iocb_out; main()
|
/linux-4.1.27/net/ |
H A D | socket.c | 116 static ssize_t sock_read_iter(struct kiocb *iocb, struct iov_iter *to); 117 static ssize_t sock_write_iter(struct kiocb *iocb, struct iov_iter *from); 783 static ssize_t sock_read_iter(struct kiocb *iocb, struct iov_iter *to) sock_read_iter() argument 785 struct file *file = iocb->ki_filp; sock_read_iter() 788 .msg_iocb = iocb}; sock_read_iter() 794 if (iocb->ki_pos != 0) sock_read_iter() 805 static ssize_t sock_write_iter(struct kiocb *iocb, struct iov_iter *from) sock_write_iter() argument 807 struct file *file = iocb->ki_filp; sock_write_iter() 810 .msg_iocb = iocb}; sock_write_iter() 813 if (iocb->ki_pos != 0) sock_write_iter()
|
/linux-4.1.27/fs/ext2/ |
H A D | inode.c | 854 ext2_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t offset) ext2_direct_IO() argument 856 struct file *file = iocb->ki_filp; ext2_direct_IO() 863 ret = dax_do_io(iocb, inode, iter, offset, ext2_get_block, NULL, ext2_direct_IO() 866 ret = blockdev_direct_IO(iocb, inode, iter, offset, ext2_direct_IO()
|
/linux-4.1.27/fs/nilfs2/ |
H A D | inode.c | 308 nilfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t offset) nilfs_direct_IO() argument 310 struct file *file = iocb->ki_filp; nilfs_direct_IO() 320 size = blockdev_direct_IO(iocb, inode, iter, offset, nilfs_get_block); nilfs_direct_IO()
|
/linux-4.1.27/fs/affs/ |
H A D | file.c | 392 affs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, loff_t offset) affs_direct_IO() argument 394 struct file *file = iocb->ki_filp; affs_direct_IO() 407 ret = blockdev_direct_IO(iocb, inode, iter, offset, affs_get_block); affs_direct_IO()
|
/linux-4.1.27/fs/f2fs/ |
H A D | data.c | 1720 static ssize_t f2fs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, f2fs_direct_IO() argument 1723 struct file *file = iocb->ki_filp; f2fs_direct_IO() 1744 err = blockdev_direct_IO(iocb, inode, iter, offset, get_data_block); f2fs_direct_IO()
|
/linux-4.1.27/fs/fat/ |
H A D | inode.c | 240 static ssize_t fat_direct_IO(struct kiocb *iocb, struct iov_iter *iter, fat_direct_IO() argument 243 struct file *file = iocb->ki_filp; fat_direct_IO() 268 ret = blockdev_direct_IO(iocb, inode, iter, offset, fat_get_block); fat_direct_IO()
|
/linux-4.1.27/drivers/scsi/qla4xxx/ |
H A D | ql4_iocb.c | 77 * qla4xxx_send_marker_iocb - issues marker iocb to HBA
|
H A D | ql4_def.h | 818 /* mbox iocb */
|
H A D | ql4_isr.c | 1440 ql4_printk(KERN_INFO, ha, "%s: It is a spurious iocb interrupt!\n", qla4_8xxx_msix_rsp_q() 1452 ql4_printk(KERN_INFO, ha, "%s: spurious iocb interrupt...\n", qla4_8xxx_msix_rsp_q()
|
H A D | ql4_os.c | 9361 "marker iocb failed.\n"); qla4xxx_eh_target_reset()
|
/linux-4.1.27/drivers/net/ethernet/qlogic/qlge/ |
H A D | qlge_main.c | 1357 * iocb->seg[0] = skb->data ql_map_send() 1358 * iocb->seg[1] = frag[0] ql_map_send() 1359 * iocb->seg[2] = frag[1] ql_map_send() 1360 * iocb->seg[3] = frag[2] ql_map_send() 1361 * iocb->seg[4] = frag[3] ql_map_send() 1362 * iocb->seg[5] = frag[4] ql_map_send() 1363 * iocb->seg[6] = frag[5] ql_map_send() 1364 * iocb->seg[7] = ptr to OAL (external sglist) ql_map_send()
|
/linux-4.1.27/fs/ubifs/ |
H A D | file.c | 1401 static ssize_t ubifs_write_iter(struct kiocb *iocb, struct iov_iter *from) ubifs_write_iter() argument 1403 int err = update_mctime(file_inode(iocb->ki_filp)); ubifs_write_iter() 1407 return generic_file_write_iter(iocb, from); ubifs_write_iter()
|
/linux-4.1.27/sound/core/ |
H A D | pcm_native.c | 3083 static ssize_t snd_pcm_readv(struct kiocb *iocb, struct iov_iter *to) snd_pcm_readv() argument 3093 pcm_file = iocb->ki_filp->private_data; snd_pcm_readv() 3119 static ssize_t snd_pcm_writev(struct kiocb *iocb, struct iov_iter *from) snd_pcm_writev() argument 3129 pcm_file = iocb->ki_filp->private_data; snd_pcm_writev()
|
/linux-4.1.27/drivers/infiniband/hw/qib/ |
H A D | qib_file_ops.c | 2262 static ssize_t qib_write_iter(struct kiocb *iocb, struct iov_iter *from) qib_write_iter() argument 2264 struct qib_filedata *fp = iocb->ki_filp->private_data; qib_write_iter() 2265 struct qib_ctxtdata *rcd = ctxt_fp(iocb->ki_filp); qib_write_iter()
|
/linux-4.1.27/drivers/infiniband/hw/ipath/ |
H A D | ipath_file_ops.c | 2421 static ssize_t ipath_write_iter(struct kiocb *iocb, struct iov_iter *from) ipath_write_iter() argument 2423 struct file *filp = iocb->ki_filp; ipath_write_iter()
|
/linux-4.1.27/fs/exofs/ |
H A D | inode.c | 966 static ssize_t exofs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, exofs_direct_IO() argument
|
/linux-4.1.27/fs/reiserfs/ |
H A D | inode.c | 3281 static ssize_t reiserfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, reiserfs_direct_IO() argument 3284 struct file *file = iocb->ki_filp; reiserfs_direct_IO() 3289 ret = blockdev_direct_IO(iocb, inode, iter, offset, reiserfs_direct_IO()
|
/linux-4.1.27/fs/ext3/ |
H A D | inode.c | 1823 static ssize_t ext3_direct_IO(struct kiocb *iocb, struct iov_iter *iter, ext3_direct_IO() argument 1826 struct file *file = iocb->ki_filp; ext3_direct_IO() 1859 ret = blockdev_direct_IO(iocb, inode, iter, offset, ext3_get_block); ext3_direct_IO()
|
/linux-4.1.27/kernel/printk/ |
H A D | printk.c | 519 static ssize_t devkmsg_write(struct kiocb *iocb, struct iov_iter *from) devkmsg_write() argument
|
/linux-4.1.27/drivers/scsi/be2iscsi/ |
H A D | be_main.c | 258 /* invalidate iocb */ beiscsi_eh_abort()
|