Function report | 
Source Code:fs\io_uring.c | 
Create Date:2022-07-28 20:22:10 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:io_prep_rw
Proto:static int io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe, bool force_nonblock)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct io_kiocb * | req | |
| const struct io_uring_sqe * | sqe | |
| bool | force_nonblock | 
| 1508 | If S_ISREG(i_mode) Then flags |= gular file | 
| 1512 | ki_flags = iocb_flags(ki_filp) | 
| 1513 | ki_hint = ki_hint_validate(file_write_hint(ki_filp)) | 
| 1515 | ioprio = READ_ONCE(prio for the request ) | 
| 1516 | If ioprio Then | 
| 1522 | Else See linux/ioprio.h = If the calling process has set an I/O priority, use that. Otherwise, return* the default I/O priority. | 
| 1525 | ret = kiocb_set_rw_flags(kiocb, READ_ONCE(rw_flags)) | 
| 1526 | If Value for the false possibility is greater at compile time(ret) Then Return ret | 
| 1530 | If ki_flags & IOCB_NOWAIT || f_flags & O_NONBLOCK Then flags |= must not punt to workers | 
| 1534 | If force_nonblock Then ki_flags |= IOCB_NOWAIT | 
| 1537 | If flags & _context is polled Then | 
| 1538 | If Not (ki_flags & IOCB_DIRECT) || Not iopoll Then Return -EOPNOTSUPP | 
| 1542 | ki_flags |= IOCB_HIPRI | 
| 1543 | ki_complete = io_complete_rw_iopoll | 
| 1544 | result = 0 | 
| 1545 | Else | 
| 1546 | If ki_flags & IOCB_HIPRI Then Return -EINVAL | 
| 1548 | ki_complete = io_complete_rw | 
| 1551 | addr = READ_ONCE(pointer to buffer or iovecs ) | 
| 1552 | len = READ_ONCE(uffer size or number of iovecs ) | 
| 1556 | Return 0 | 
| Name | Describe | 
|---|---|
| io_read_prep | |
| io_write_prep | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |