SCSI_INTERNAL_DEVICE(9) SCSI mid layer SCSI_INTERNAL_DEVICE(9)NAME
scsi_internal_device_block - internal function to put a device temporarily into the SDEV_BLOCK state
SYNOPSIS
int scsi_internal_device_block(struct scsi_device * sdev);
ARGUMENTS
sdev
device to block
DESCRIPTION
Block request made by scsi lld's to temporarily stop all scsi commands on the specified device. Called from interrupt or normal process
context.
Returns zero if successful or error if not
NOTES
This routine transitions the device to the SDEV_BLOCK state (which must be a legal transition). When the device is in this state, all
commands are deferred until the scsi lld reenables the device with scsi_device_unblock or device_block_tmo fires. This routine assumes the
host_lock is held on entry.
AUTHORS
James Bottomley <James.Bottomley@hansenpartnership.com>
Author.
Rob Landley <rob@landley.net>
Author.
COPYRIGHT Kernel Hackers Manual 2.6. July 2010 SCSI_INTERNAL_DEVICE(9)
Check Out this Related Man Page
TAPSET::SCSI(3stap)TAPSET::SCSI(3stap)NAME
tapset::scsi - systemtap scsi probe points
DESCRIPTION
This family of probe points is used to probe the SCSI activities. It contains the following probe points:
scsi.ioentry
Fires when SCSI mid layer prepares a SCSI request
Arguments:
disk_major
The major number of the disk
disk_minor
The minor number of the disk
device_state
The current state of the device. The possible values could be:
SDEV_CREATED = 1, /* device created but not added to sysfs
* Only internal commands allowed (for inq) */
SDEV_RUNNING = 2, /* device properly configured
* All commands allowed */
SDEV_CANCEL = 3, /* beginning to delete device
* Only error handler commands allowed */
SDEV_DEL = 4, /* device deleted
* no commands allowed */
SDEV_QUIESCE = 5, /* Device quiescent. No block commands
* will be accepted, only specials (which
* originate in the mid-layer) */
SDEV_OFFLINE = 6, /* Device offlined (by error handling or
* user request */
SDEV_BLOCK = 7, /* Device blocked by scsi lld. No scsi
* commands from user or midlayer should be issued
* to the scsi lld. */
scsi.iodispatching
Fires when the SCSI mid layer dispatches a SCSI command to the low level driver
Arguments:
host_no
The host number
channel
The channel number
lun
The lun number
dev_id
The scsi device id
device_state
The current state of the device.
data_direction
The data_direction specifies whether this command is from/to the device.
The possible values could be:
DMA_BIDIRECTIONAL = 0,
DMA_TO_DEVICE = 1,
DMA_FROM_DEVICE = 2,
DMA_NONE = 3,
request_buffer
The request buffer address
req_bufflen
The request buffer length
scsi.iodone
Fires when a SCSI command is done by low level driver and enqueued into the done queue.
Arguments:
host_no
The host number
channel
The channel number
lun
The lun number
dev_id
The scsi device id
device_state
The current state of the device
data_direction
The data_direction specifies whether this command is from/to the device.
scsi.iocompleted
Fires when SCSI mid layer runs the completion processing for block device I/O requests
Arguments:
host_no
The host number
channel
The channel number
lun
The lun number
dev_id
The scsi device id
device_state
The current state of the device
data_direction
The data_direction specifies whether this command is from/to the device.
goodbytes
The bytes completed.
SEE ALSO stap(1), stapprobes(3stap)IBM TAPSET::SCSI(3stap)