spdk_bdev_io::__bdev_io_internal_fields Struct Reference

Fields that are used internally by the bdev subsystem. More...

Collaboration diagram for spdk_bdev_io::__bdev_io_internal_fields:

Public Member Functions

 TAILQ_ENTRY (spdk_bdev_io) link
 Member used for linking child I/Os together.
 
 STAILQ_ENTRY (spdk_bdev_io) buf_link
 Entry to the list need_buf of struct spdk_bdev.
 
 TAILQ_ENTRY (spdk_bdev_io) ch_link
 Entry to the list io_submitted of struct spdk_bdev_channel.
 

Data Fields

struct spdk_bdev_channel * ch
 The bdev I/O channel that this was handled on.
 
struct spdk_bdev_channel * io_submit_ch
 The bdev I/O channel that this was submitted on.
 
struct spdk_bdev_desc * desc
 The bdev descriptor that was used when submitting this I/O.
 
spdk_bdev_io_completion_cb cb
 User function that will be called when this completes.
 
void * caller_ctx
 Context that will be passed to the completion callback.
 
uint64_t submit_tsc
 Current tsc at submit time. More...
 
union {
   struct {
      uint32_t   cdw0
 NVMe completion queue entry DW0.
 
      uint8_t   sct
 NVMe status code type.
 
      uint8_t   sc
 NVMe status code.
 
   }   nvme
 
   struct {
      uint8_t   sc
 SCSI status code.
 
      uint8_t   sk
 SCSI sense key.
 
      uint8_t   asc
 SCSI additional sense code.
 
      uint8_t   ascq
 SCSI additional sense code qualifier.
 
   }   scsi
 Only valid when status is SPDK_BDEV_IO_STATUS_SCSI_ERROR.
 
   int   aio_result
 Only valid when status is SPDK_BDEV_IO_STATUS_AIO_ERROR.
 
error
 Error information from a device.
 
bool in_submit_request
 Set to true while the bdev module submit_request function is in progress. More...
 
int8_t status
 Status for the IO.
 
void * buf
 bdev allocated memory associated with this request
 
uint64_t buf_len
 requested size of the buffer associated with this I/O
 
struct iovec bounce_iov
 if the request is double buffered, store original request iovs here
 
struct iovec bounce_md_iov
 
struct iovec orig_md_iov
 
struct iovec * orig_iovs
 
int orig_iovcnt
 
spdk_bdev_io_get_aux_buf_cb get_aux_buf_cb
 Callback for when the aux buf is allocated.
 
spdk_bdev_io_get_buf_cb get_buf_cb
 Callback for when buf is allocated.
 
struct spdk_bdev_io_wait_entry waitq_entry
 Enables queuing parent I/O when no bdev_ios available for split children.
 
struct spdk_bdev_ext_io_optsext_opts
 Pointer to a structure passed by the user in ext API.
 
struct spdk_bdev_ext_io_opts ext_opts_copy
 Copy of user's opts, used when I/O is split.
 
void(* data_transfer_cpl )(void *ctx, int rc)
 Data transfer completion callback.
 

Detailed Description

Fields that are used internally by the bdev subsystem.

Bdev modules must not read or write to these fields.

Field Documentation

◆ in_submit_request

bool spdk_bdev_io::__bdev_io_internal_fields::in_submit_request

Set to true while the bdev module submit_request function is in progress.

This is used to decide whether spdk_bdev_io_complete() can complete the I/O directly or if completion must be deferred via an event.

◆ sc

uint8_t spdk_bdev_io::__bdev_io_internal_fields::sc

NVMe status code.

SCSI status code.

◆ submit_tsc

uint64_t spdk_bdev_io::__bdev_io_internal_fields::submit_tsc

Current tsc at submit time.

Used to calculate latency at completion.


The documentation for this struct was generated from the following file: