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 [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_bdev_ext_io_opts *   ext_opts
 Pointer to user's ext opts to be used by bdev modules.
      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
      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
   }   bdev
   struct {
      struct spdk_io_channel *   ch_ref
 Channel reference held while messages for this reset are in progress.
   }   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
      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

◆ 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: