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_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
 
      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
 
      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
 
u
 
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: