spdk_bdev_io Struct Reference
Collaboration diagram for spdk_bdev_io:

Data Structures

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

Public Member Functions

 TAILQ_ENTRY (spdk_bdev_io) module_link
 It may be used by modules to put the bdev_io into its own list.

Data Fields

struct spdk_bdevbdev
 The block device that this I/O belongs to.
uint8_t type
 Enumerated value representing the I/O type.
uint16_t num_retries
 Number of IO submission retries.
struct iovec iov
 A single iovec element for use by this bdev_io.
struct iovec child_iov [SPDK_BDEV_IO_NUM_CHILD_IOV]
 Array of iovecs used for I/O splitting.
union {
   struct {
      struct iovec *   iovs
 For SG buffer cases, array of iovecs to transfer.
      int   iovcnt
 For SG buffer cases, number of iovecs in iovec array.
      struct iovec *   fused_iovs
 For fused operations such as COMPARE_AND_WRITE, array of iovecs for the second operation.
      int   fused_iovcnt
 Number of iovecs in fused_iovs.
      void *   md_buf
      uint64_t   num_blocks
 Total size of data to be transferred.
      uint64_t   offset_blocks
 Starting offset (in blocks) of the bdev for this I/O.
      struct spdk_memory_domain *   memory_domain
 Memory domain and its context to be used by bdev modules.
      void *   memory_domain_ctx
      struct spdk_accel_sequence *   accel_sequence
      spdk_bdev_io_completion_cb   stored_user_cb
 stored user callback in case we split the I/O and use a temporary callback
      uint64_t   split_remaining_num_blocks
 number of blocks remaining in a split i/o
      uint64_t   split_current_offset_blocks
 current offset of the split I/O in the bdev
      uint32_t   split_outstanding
 count of outstanding batched split I/Os
      uint32_t   dif_check_flags
 Specify whether each DIF check type is enabled.
      union spdk_bdev_nvme_cdw12   nvme_cdw12
 defined by spdk_bdev_nvme_cdw12
      union spdk_bdev_nvme_cdw13   nvme_cdw13
 defined by spdk_bdev_nvme_cdw13
      struct {
         uint8_t   populate: 1
 Whether the buffer should be populated with the real data.
         uint8_t   commit: 1
 Whether the buffer should be committed back to disk.
         uint8_t   start: 1
 True if this request is in the 'start' phase of zcopy. More...
      }   zcopy
      struct {
         void *   bio_cb_arg
 The callback argument for the outstanding request which this abort attempts to cancel.
      }   abort
      struct {
         uint64_t   offset
 The offset of next data/hole. More...
      }   seek
      struct {
         uint64_t   src_offset_blocks
 Starting source offset (in blocks) of the bdev for copy I/O.
      }   copy
   }   bdev
   struct {
      struct spdk_io_channel *   ch_ref
 Channel reference held while messages for this reset are in progress.
      struct {
         struct spdk_poller *   poller
         uint64_t   stop_time_tsc
      }   wait_poller
   }   reset
   struct {
      struct spdk_bdev_io *   bio_to_abort
 The outstanding request matching bio_cb_arg which this abort attempts to cancel.
   }   abort
   struct {
      struct spdk_nvme_cmd   cmd
      struct iovec *   iovs
      int   iovcnt
      void *   buf
      size_t   nbytes
      void *   md_buf
      size_t   md_len
   }   nvme_passthru
   struct {
      uint64_t   zone_id
      uint32_t   num_zones
      enum spdk_bdev_zone_action   zone_action
      void *   buf
   }   zone_mgmt
struct spdk_bdev_io::__bdev_io_internal_fields internal
uint8_t driver_ctx [0]
 Per I/O context for use by the bdev module.

Field Documentation

◆ offset

uint64_t spdk_bdev_io::offset

The offset of next data/hole.

◆ start

uint8_t spdk_bdev_io::start

True if this request is in the 'start' phase of zcopy.

False if in 'end'.

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