Chapter 14. Block Devices
Prev
Next
Chapter 14. Block Devices
Table of Contents
blk_get_backing_dev_info
— get the address of a queue's backing_dev_info
blk_delay_queue
— restart queueing after defined interval
blk_start_queue
— restart a previously stopped queue
blk_stop_queue
— stop a queue
blk_sync_queue
— cancel any pending callbacks on a queue
__blk_run_queue
— run a single device queue
blk_run_queue_async
— run a single device queue in workqueue context
blk_run_queue
— run a single device queue
blk_queue_bypass_start
— enter queue bypass mode
blk_queue_bypass_end
— leave queue bypass mode
blk_cleanup_queue
— shutdown a request queue
blk_init_queue
— prepare a request queue for use with a block device
blk_make_request
— given a bio, allocate a corresponding struct request.
blk_rq_set_block_pc
— initialize a request to type BLOCK_PC
blk_requeue_request
— put a request back on queue
part_round_stats
— Round off the performance stats on a struct disk_stats.
blk_add_request_payload
— add a payload to a request
generic_make_request
— hand a buffer to its device driver for I/O
submit_bio
— submit a bio to the block device layer for I/O
blk_rq_check_limits
— Helper function to check a request for the queue limit
blk_insert_cloned_request
— Helper for stacking drivers to submit a request
blk_rq_err_bytes
— determine number of bytes till the next failure boundary
blk_peek_request
— peek at the top of a request queue
blk_start_request
— start request processing on the driver
blk_fetch_request
— fetch a request from a request queue
blk_update_request
— Special helper function for request stacking drivers
blk_unprep_request
— unprepare a request
blk_end_request
— Helper function for drivers to complete the request.
blk_end_request_all
— Helper function for drives to finish the request.
blk_end_request_cur
— Helper function to finish the current request chunk.
blk_end_request_err
— Finish a request till the next failure boundary.
__blk_end_request
— Helper function for drivers to complete the request.
__blk_end_request_all
— Helper function for drives to finish the request.
__blk_end_request_cur
— Helper function to finish the current request chunk.
__blk_end_request_err
— Finish a request till the next failure boundary.
rq_flush_dcache_pages
— Helper function to flush all pages in a request
blk_lld_busy
— Check if underlying low-level drivers of a device are busy
blk_rq_unprep_clone
— Helper function to free all bios in a cloned request
blk_rq_prep_clone
— Helper function to setup clone request
blk_start_plug
— initialize blk_plug and track it inside the task_struct
blk_pm_runtime_init
— Block layer runtime PM initialization routine
blk_pre_runtime_suspend
— Pre runtime suspend check
blk_post_runtime_suspend
— Post runtime suspend processing
blk_pre_runtime_resume
— Pre runtime resume processing
blk_post_runtime_resume
— Post runtime resume processing
__blk_run_queue_uncond
— run a queue whether or not it has been stopped
__blk_drain_queue
— drain requests from request_queue
rq_ioc
— determine io_context for request allocation
__get_request
— get a free request
get_request
— get a free request
blk_attempt_plug_merge
— try to merge with
current
's plugged list
blk_end_bidi_request
— Complete a bidi request
__blk_end_bidi_request
— Complete a bidi request with queue lock held
blk_rq_map_user_iov
— map user data to a request, for REQ_TYPE_BLOCK_PC usage
blk_rq_unmap_user
— unmap a request with user data
blk_rq_map_kern
— map kernel data to a request, for REQ_TYPE_BLOCK_PC usage
blk_release_queue
— release a
struct request_queue
when it is no longer needed
blk_queue_prep_rq
— set a prepare_request function for queue
blk_queue_unprep_rq
— set an unprepare_request function for queue
blk_queue_merge_bvec
— set a merge_bvec function for queue
blk_set_default_limits
— reset limits to default values
blk_set_stacking_limits
— set default limits for stacking devices
blk_queue_make_request
— define an alternate make_request function for a device
blk_queue_bounce_limit
— set bounce buffer limit for queue
blk_limits_max_hw_sectors
— set hard and soft limit of max sectors for request
blk_queue_max_hw_sectors
— set max sectors for a request for this queue
blk_queue_chunk_sectors
— set size of the chunk for this queue
blk_queue_max_discard_sectors
— set max sectors for a single discard
blk_queue_max_write_same_sectors
— set max sectors for a single write same
blk_queue_max_segments
— set max hw segments for a request for this queue
blk_queue_max_segment_size
— set max segment size for blk_rq_map_sg
blk_queue_logical_block_size
— set logical block size for the queue
blk_queue_physical_block_size
— set physical block size for the queue
blk_queue_alignment_offset
— set physical block alignment offset
blk_limits_io_min
— set minimum request size for a device
blk_queue_io_min
— set minimum request size for the queue
blk_limits_io_opt
— set optimal request size for a device
blk_queue_io_opt
— set optimal request size for the queue
blk_queue_stack_limits
— inherit underlying queue limits for stacked drivers
blk_stack_limits
— adjust queue_limits for stacked devices
bdev_stack_limits
— adjust queue limits for stacked drivers
disk_stack_limits
— adjust queue limits for stacked drivers
blk_queue_dma_pad
— set pad mask
blk_queue_update_dma_pad
— update pad mask
blk_queue_dma_drain
— Set up a drain buffer for excess dma.
blk_queue_segment_boundary
— set boundary rules for segment merging
blk_queue_dma_alignment
— set dma length and memory alignment
blk_queue_update_dma_alignment
— update dma length and memory alignment
blk_queue_flush
— configure queue's cache flush capability
blk_execute_rq_nowait
— insert a request into queue for execution
blk_execute_rq
— insert a request into queue for execution
blkdev_issue_flush
— queue a flush
blkdev_issue_discard
— queue a discard
blkdev_issue_write_same
— queue a write same operation
blkdev_issue_zeroout
— zero-fill a block range
blk_queue_find_tag
— find a request by its tag and queue
blk_free_tags
— release a given set of tag maintenance info
blk_queue_free_tags
— release tag maintenance info
blk_init_tags
— initialize the tag info for an external tag map
blk_queue_init_tags
— initialize the queue tag info
blk_queue_resize_tags
— change the queueing depth
blk_queue_end_tag
— end tag operations for a request
blk_queue_start_tag
— find a free tag and assign it
blk_queue_invalidate_tags
— invalidate all pending tags
__blk_queue_free_tags
— release tag maintenance info
blk_rq_count_integrity_sg
— Count number of integrity scatterlist elements
blk_rq_map_integrity_sg
— Map integrity metadata into a scatterlist
blk_integrity_compare
— Compare integrity profile of two disks
blk_integrity_register
— Register a gendisk as being integrity-capable
blk_integrity_unregister
— Remove block integrity profile
blk_trace_ioctl
— handle the ioctls associated with tracing
blk_trace_shutdown
— stop and cleanup trace structures
blk_add_trace_rq
— Add a trace for a request oriented action
blk_add_trace_bio
— Add a trace for a bio oriented action
blk_add_trace_bio_remap
— Add a trace for a bio-remap operation
blk_add_trace_rq_remap
— Add a trace for a request-remap operation
blk_mangle_minor
— scatter minor numbers apart
blk_alloc_devt
— allocate a dev_t for a partition
blk_free_devt
— free a dev_t
disk_replace_part_tbl
— replace disk->part_tbl in RCU-safe way
disk_expand_part_tbl
— expand disk->part_tbl
disk_block_events
— block and flush disk event checking
disk_unblock_events
— unblock disk event checking
disk_flush_events
— schedule immediate event checking and flushing
disk_clear_events
— synchronously check, clear and return pending events
disk_get_part
— get partition
disk_part_iter_init
— initialize partition iterator
disk_part_iter_next
— proceed iterator to the next partition and return it
disk_part_iter_exit
— finish up partition iteration
disk_map_sector_rcu
— map sector to partition
register_blkdev
— register a new block device
add_disk
— add partitioning information to kernel list
get_gendisk
— get partitioning information for a given device
bdget_disk
— do
bdget
by gendisk and partition number