linux/drivers/scsi/scsi_lib.c
<<
>>
Prefs
   1/*
   2 *  scsi_lib.c Copyright (C) 1999 Eric Youngdale
   3 *
   4 *  SCSI queueing library.
   5 *      Initial versions: Eric Youngdale (eric@andante.org).
   6 *                        Based upon conversations with large numbers
   7 *                        of people at Linux Expo.
   8 */
   9
  10#include <linux/bio.h>
  11#include <linux/bitops.h>
  12#include <linux/blkdev.h>
  13#include <linux/completion.h>
  14#include <linux/kernel.h>
  15#include <linux/export.h>
  16#include <linux/mempool.h>
  17#include <linux/slab.h>
  18#include <linux/init.h>
  19#include <linux/pci.h>
  20#include <linux/delay.h>
  21#include <linux/hardirq.h>
  22#include <linux/scatterlist.h>
  23
  24#include <scsi/scsi.h>
  25#include <scsi/scsi_cmnd.h>
  26#include <scsi/scsi_dbg.h>
  27#include <scsi/scsi_device.h>
  28#include <scsi/scsi_driver.h>
  29#include <scsi/scsi_eh.h>
  30#include <scsi/scsi_host.h>
  31
  32#include "scsi_priv.h"
  33#include "scsi_logging.h"
  34
  35
  36#define SG_MEMPOOL_NR           ARRAY_SIZE(scsi_sg_pools)
  37#define SG_MEMPOOL_SIZE         2
  38
  39struct scsi_host_sg_pool {
  40        size_t          size;
  41        char            *name;
  42        struct kmem_cache       *slab;
  43        mempool_t       *pool;
  44};
  45
  46#define SP(x) { x, "sgpool-" __stringify(x) }
  47#if (SCSI_MAX_SG_SEGMENTS < 32)
  48#error SCSI_MAX_SG_SEGMENTS is too small (must be 32 or greater)
  49#endif
  50static struct scsi_host_sg_pool scsi_sg_pools[] = {
  51        SP(8),
  52        SP(16),
  53#if (SCSI_MAX_SG_SEGMENTS > 32)
  54        SP(32),
  55#if (SCSI_MAX_SG_SEGMENTS > 64)
  56        SP(64),
  57#if (SCSI_MAX_SG_SEGMENTS > 128)
  58        SP(128),
  59#if (SCSI_MAX_SG_SEGMENTS > 256)
  60#error SCSI_MAX_SG_SEGMENTS is too large (256 MAX)
  61#endif
  62#endif
  63#endif
  64#endif
  65        SP(SCSI_MAX_SG_SEGMENTS)
  66};
  67#undef SP
  68
  69struct kmem_cache *scsi_sdb_cache;
  70
  71#ifdef CONFIG_ACPI
  72#include <acpi/acpi_bus.h>
  73
  74int scsi_register_acpi_bus_type(struct acpi_bus_type *bus)
  75{
  76        bus->bus = &scsi_bus_type;
  77        return register_acpi_bus_type(bus);
  78}
  79EXPORT_SYMBOL_GPL(scsi_register_acpi_bus_type);
  80
  81void scsi_unregister_acpi_bus_type(struct acpi_bus_type *bus)
  82{
  83        unregister_acpi_bus_type(bus);
  84}
  85EXPORT_SYMBOL_GPL(scsi_unregister_acpi_bus_type);
  86#endif
  87
  88/*
  89 * When to reinvoke queueing after a resource shortage. It's 3 msecs to
  90 * not change behaviour from the previous unplug mechanism, experimentation
  91 * may prove this needs changing.
  92 */
  93#define SCSI_QUEUE_DELAY        3
  94
  95/*
  96 * Function:    scsi_unprep_request()
  97 *
  98 * Purpose:     Remove all preparation done for a request, including its
  99 *              associated scsi_cmnd, so that it can be requeued.
 100 *
 101 * Arguments:   req     - request to unprepare
 102 *
 103 * Lock status: Assumed that no locks are held upon entry.
 104 *
 105 * Returns:     Nothing.
 106 */
 107static void scsi_unprep_request(struct request *req)
 108{
 109        struct scsi_cmnd *cmd = req->special;
 110
 111        blk_unprep_request(req);
 112        req->special = NULL;
 113
 114        scsi_put_command(cmd);
 115}
 116
 117/**
 118 * __scsi_queue_insert - private queue insertion
 119 * @cmd: The SCSI command being requeued
 120 * @reason:  The reason for the requeue
 121 * @unbusy: Whether the queue should be unbusied
 122 *
 123 * This is a private queue insertion.  The public interface
 124 * scsi_queue_insert() always assumes the queue should be unbusied
 125 * because it's always called before the completion.  This function is
 126 * for a requeue after completion, which should only occur in this
 127 * file.
 128 */
 129static void __scsi_queue_insert(struct scsi_cmnd *cmd, int reason, int unbusy)
 130{
 131        struct Scsi_Host *host = cmd->device->host;
 132        struct scsi_device *device = cmd->device;
 133        struct scsi_target *starget = scsi_target(device);
 134        struct request_queue *q = device->request_queue;
 135        unsigned long flags;
 136
 137        SCSI_LOG_MLQUEUE(1,
 138                 printk("Inserting command %p into mlqueue\n", cmd));
 139
 140        /*
 141         * Set the appropriate busy bit for the device/host.
 142         *
 143         * If the host/device isn't busy, assume that something actually
 144         * completed, and that we should be able to queue a command now.
 145         *
 146         * Note that the prior mid-layer assumption that any host could
 147         * always queue at least one command is now broken.  The mid-layer
 148         * will implement a user specifiable stall (see
 149         * scsi_host.max_host_blocked and scsi_device.max_device_blocked)
 150         * if a command is requeued with no other commands outstanding
 151         * either for the device or for the host.
 152         */
 153        switch (reason) {
 154        case SCSI_MLQUEUE_HOST_BUSY:
 155                host->host_blocked = host->max_host_blocked;
 156                break;
 157        case SCSI_MLQUEUE_DEVICE_BUSY:
 158        case SCSI_MLQUEUE_EH_RETRY:
 159                device->device_blocked = device->max_device_blocked;
 160                break;
 161        case SCSI_MLQUEUE_TARGET_BUSY:
 162                starget->target_blocked = starget->max_target_blocked;
 163                break;
 164        }
 165
 166        /*
 167         * Decrement the counters, since these commands are no longer
 168         * active on the host/device.
 169         */
 170        if (unbusy)
 171                scsi_device_unbusy(device);
 172
 173        /*
 174         * Requeue this command.  It will go before all other commands
 175         * that are already in the queue. Schedule requeue work under
 176         * lock such that the kblockd_schedule_work() call happens
 177         * before blk_cleanup_queue() finishes.
 178         */
 179        spin_lock_irqsave(q->queue_lock, flags);
 180        blk_requeue_request(q, cmd->request);
 181        kblockd_schedule_work(q, &device->requeue_work);
 182        spin_unlock_irqrestore(q->queue_lock, flags);
 183}
 184
 185/*
 186 * Function:    scsi_queue_insert()
 187 *
 188 * Purpose:     Insert a command in the midlevel queue.
 189 *
 190 * Arguments:   cmd    - command that we are adding to queue.
 191 *              reason - why we are inserting command to queue.
 192 *
 193 * Lock status: Assumed that lock is not held upon entry.
 194 *
 195 * Returns:     Nothing.
 196 *
 197 * Notes:       We do this for one of two cases.  Either the host is busy
 198 *              and it cannot accept any more commands for the time being,
 199 *              or the device returned QUEUE_FULL and can accept no more
 200 *              commands.
 201 * Notes:       This could be called either from an interrupt context or a
 202 *              normal process context.
 203 */
 204void scsi_queue_insert(struct scsi_cmnd *cmd, int reason)
 205{
 206        __scsi_queue_insert(cmd, reason, 1);
 207}
 208/**
 209 * scsi_execute - insert request and wait for the result
 210 * @sdev:       scsi device
 211 * @cmd:        scsi command
 212 * @data_direction: data direction
 213 * @buffer:     data buffer
 214 * @bufflen:    len of buffer
 215 * @sense:      optional sense buffer
 216 * @timeout:    request timeout in seconds
 217 * @retries:    number of times to retry request
 218 * @flags:      or into request flags;
 219 * @resid:      optional residual length
 220 *
 221 * returns the req->errors value which is the scsi_cmnd result
 222 * field.
 223 */
 224int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd,
 225                 int data_direction, void *buffer, unsigned bufflen,
 226                 unsigned char *sense, int timeout, int retries, int flags,
 227                 int *resid)
 228{
 229        struct request *req;
 230        int write = (data_direction == DMA_TO_DEVICE);
 231        int ret = DRIVER_ERROR << 24;
 232
 233        req = blk_get_request(sdev->request_queue, write, __GFP_WAIT);
 234        if (!req)
 235                return ret;
 236
 237        if (bufflen &&  blk_rq_map_kern(sdev->request_queue, req,
 238                                        buffer, bufflen, __GFP_WAIT))
 239                goto out;
 240
 241        req->cmd_len = COMMAND_SIZE(cmd[0]);
 242        memcpyd8u5r0"> 120
 240
2.DRIVER_ERROR << 24;
blk_unprep_requebuffer, unsigned , unsigned 
blk_unprep_requebuffmcpyd8u5r0"> 120
  << 24;
blk_unprep_requ#L226" id="L226" class="line" nam 108{

le to queue a command no2.<< 24;
blk_unprep_requs="sref">bufflen,
bufflen,

lib.c#L146" id="L146" cl2ss="l24ef="+code=flags" class="srefa>        mem4">  84}
mem4"> ="dr 108{
}

        mem             unsigne>mem     57" c|108{
{

"Inserting comm2si/scsi_l2b.c#L149" id="L149" clas2="lin25href="+code=cmd" class="sref">cmd));
 150    wisueuene"cill ine" namkd_sch;
->ef="drivers/scsi/scsi_li2.c#L121" id="L151" class="line" name="L151"> 151         * ei2her for t2e device or for the host2DRIVER_ERROR 
 236
COMMAND_SIZE(cmd[0ass="sref">flags);
bufflen &&   206        <        *2
flags);
2drivers/s2si/scsi_lib.c#L154" id="2154" 2lass="line" namd" class="sref">cmd));
blocked" class="sref">ho2t_blo25ine" name="L175"> 175 * @bufflen:    len ="+code=m2x_host_blocked" class="s2ef">m25="line" name="L176"> 176.max_a8 * @bufflen:    len =_map_kerncsi_lib.c#L157" id="L1572 clas25ine" name="L167"> 167 * @bufflen:    len =         scsi/scsi_lib.c#L158" id2"L15825L148" class="line" name="L148"> 148 * returns the req->errorblocked" 2lass="sref">device_block2d26 name="L149"> 149         * ei2ode=max_d2vice_blocked" class="sre2">max2device_blockedvers/scsi/scsi_lib.c#likel9" id="L169" classPE_BLO7L169" classPE_Bc#likel9" id="L169" class="drivers2scsi/25="+cod2an class=86 " class h76ret = ->req,
 160            memsde=__GFP_WAIT" clmemsde=max_d2vice_blocked"q_map_kern(cmd[0]);
flags);
target_blocked(sense, int ref="+code=sense" class="sref">sense, int=req" class="sref">req)
flags);
req)
)
flags);
 138                                   _device_blocked;
 26reREQ_TYPE_BLOCK_PC="dr="c5nei2hpeci"+code=DRIVER_ERROR" classpeci"+code==max_d2vice_blocked" class="sre2">max2device_)">flags);
 167__GFP_WAIT);
un2usy, ;
 22)">flags);
 123 s/scsi/scsi_lib.c#L222" id="L22_ class="sre2">max2222" id="L22_ cl/a>;
 * field.
 223 */
2        * Requeue this c2mmand27="line" name="L225"> 2( class="sref">scsi_execute(struct scsi_device *sdev, const unsigned char *cmd,
         * that are a2ready27       unsigned char ***** e" 24hhd> * e" 24hhd>/scsi/scsi_lib.c#L223"shd> *data_direction, void *buffer, unsigned cmd,
sense, int retries, int  279                      int blk_unprep_request( 230< resss="sref">senseblk_unprep_request( 181      2 blk_unprep_request( 182<2a>   28ne" name="L15( *spin_unlock_irqrestor2(284p;&  ;
out;
oua href="+code=cmd" cla hrNOIOt;
 22)">flags);
qu28=write" class="sref">( 2 inwrite, write = (data_direction == 

sense =  222scsi_lib.c#L223" id="L223" class="line" nameE" class="sref">COMMAND_SIZE((struct scsi_device *, const unsigned char *cmd,
, constction, void *buffer, unsigned sense, int ass="sref">data_direction ==  168"shd> *data_direction ==  169, constce_blSENSs="sFFER">out;
oua href="+code=cmd" cl"shd> *data_direction ==  * Argumen2s:   29_TO_DEVICE);
 151 222scsi_lib.c#L223"ref="+code=data_direction" c ass="sref">data_direction == , senseblk_unprep_request( 113
, ;
max2222" id="L22_ cl/a>; ass="sref">data_direction == 

data_direction == 
 196flags);
2drivers/s2si/scsi_li> * Notes2       We do this for on2 of t2o cases.  Either the host is bua href="drivers/scinit_ine2errhc#L184" id="L184" class="line" name="L184"> 3"> *     3        and it cannot ac3ept a3y more commands for the time bL184" id="L184" class="line" name="L184"> 3"1 *     3 .c#L189" id="L189" clas3class3"comment"> *              or the="L186"> 186 200 *              commanock status: Assumed that lock is not held 3"3ine" na3e#L191" id="L191" class=3 * No3es:       This could be calledpan class="comment">  * Purpose:     river="drtclas.c#L19ent"> *
 192 *
 203v30="line" name="L213"> 213 *

 214 195L172n class="comment"> *

 *              FULL and coL165"L20each Purpose bit L139"2/snt"> *
__sreturns the req->errorblocked" 2lass="sref3="sref">c3d, max2222" init_ine2errh/a>;
 pan>
data_direction == (struct queue_lock,  e"ci"+class="sref">sensert"> e"ci"+cla/a>;
data_direction ==  151queue_lock,  *out;
oua hr ass="sref">data_direction == queue_lock,                 goto data_direction == queue_lock,                 goto  purpose_size
queue_lock, 
data_direction ==  113
 31si_liss="sref">data_direction ==  216         */
 * field.
data_direction == c3ss="line" name="L217"> 23731line"="sref">retries, int 328" class="lindata_direction == 
e=SCSI_MLQUEUE_TARGET_e=SCSI/scsi/scsi_lib.c#L223"e=SCSI_MLQUEUE_TARGET_BUSY" clasefpan class="comment"> e=SCSI_MLQUEUE_TARGET_e=SCSI/scs2scsi_lib.c#L223" id="L223" class="line" na ass="sref">data_direction == 165""line" name="L57"a>        data_direction ==          * before blk_cleanup_queue() finishes.->requeue_work);
 224i3t     #L154lassa hrv-"drivers/scsi/scsi_lib.c#L182" id="L3c604" cla3scsi_lib.c#L225" id="L223" cla32"L226" class="line" nam="c5n    break;
    "L161" cassa hrv-"drivers/scsi/scsi_lib.c#L182" id="L3c5" id="L3" name="L226"> 226  3     32ref="drivers/scsi/scsi_lib.c#L23ass="comment">         * ei2ode=max_d2vice_blocked"#L182#L154orerecoscss="comment">         #L154orerecoscss_queue() finishes., int {
req,
flags,
3a hre32ICE_BUSY" class="sref">SCSI_MLQUEUE_222" ih_wakeupass="sre2">max2222" ih_wakeup_queue() finishes.                 * before(->         * before blk/scs2scsi_lib.c#L223" id="L223" class="line" na"L236" class="line" name="L236"> 236
device->D33f="+code=kblockd_schedule_wor id="L223" class="line" na"L236" class="line" rs/scsi/ass="comment">    rs/scsi/assa hrv-"drivers/scsi/scsi_lib.c#L182" id="L3si_lib.c#3231" id="L231" class="li3e" na3e="L231"> 231        int rk" class="sref">kblockd_schedule_work(q" id="L223" class="line" na"L236" class="line" name="L236"> 236
device->requeue_work);
 113
3equest_queue, max_target_blocked;
 214flags);
2drivers/s2si/scsi_l3ref="+cod3=req" class="sref">req)
 * C and c"L20singlde=un/scsi_libon IO Purple4" c. Clear ivers/s_line_usere" name="L197"> 197buffle3 33class="comment"> * @timeout:  " id="llan>
 197buffe3,  3GFP_WAIT"3class="sref">__GFP_WAIT<3a>))
34comment"> *              or thC and c="+co*noa href  reashy wei_lib.c#L201" id="L201" class="line" name="3esi_lib.c3L241" id="L241" class="l3ne" n34mment"> *              commanturns the req->errorblocked" 2lass="sref3ref="+cod3=memcpy" class="sref">me3cpyd835r0"> rs/scsi/scsi_lib.c#L127" idrs/scsinglde=unsensert"> einglde=un * field.
data_direction == ="sref">retries, int 3lk_unprep_requebuffmcpyd3u5r0"3 120data_direction ==  * field.
max2tmpa hrass="sref">data_direction == {
,
< e=SCSI_MLQUEUE_TARGET_e=SCSI/scs2scsi_lib.c#L223currst _line
data_direction == }
165""line" name="L57"a>        data_direction == {

                 * before blk_cleanup_queue() finishes.->requeue_work);
blk_unprep_request(3 *buffired"cherea>    wi3ueuen35f="+code=kblockd_schedule_work" class="sref">kblockd_schedule_work(q"h ->requeue_work);
bufflen, unsigne14"> 214flags);
2drivers/s2si/scsi_l3"> 206
 213>>>>>>>>thC anan>
flags);
2drivers/s2si/scsi_l3"ss="line3id="2154" 2lass="line" n3md" c3ass="sref">cmd));
 197 197.max_a8         236
3149         * before blk_cleanup_queue() finishes.->requeue_work);
data_direction == target_blocked>>>>>>>>"> 238                                                 * bli nafor_each_nsert_safn" class="sref">q" id="L223" class="line" naassdev, constcmpass="sre2">max2tmpa hr,classPef="+code=sense"   break;
    rs/scs"+code" class="sref">cmd,
 2 inef="+code=sense"d="_vers/s_libl * i="comment">    "d="_vers/s_libl * ia hr)c="sref">retries, int data_direction ==  36mp;&   167rivers_CSI/scs2scsi_lib.c#L223" id="L223" class="line" na  ss="sref">data_direction == un37ne" name="L160"> 160            rk" class="sref">kblockd_schedule_work(q"h ->requeue_work);
 160            n>
)n>
 236
(         * before blk_cleanup_queue() finishes.->requeue_work);
 137120 ef="+code=sense"f="drivers_p                 "f="drivers_p  /scs2scsi_lib.c#L223" id="L223" class="line" na "drivers/scsi/scsi_lib.c#L182" id="L33Som     3t">         * that are a3ready37       unsign6" id="L206" class="line" name="L2063s6" id="L3/a>                                   _device_blocked;
            rk" class="sref">kblockd_schedule_work(q"h ->requeue_work);
 3796" id="L206" class="line" name="L2063b.c#L180"3id="L180" class="line" n3me="L38 181      3 )in181    222" rivers_isi/asshref= * field.
data_direction ==  182<3a>   38ne" n="sref">retries, int spin_unlock_irqrestor3(384p;&      rs/scsi/assa hr7L169fpan class="commen/scsi/scsi_lib.c#L236" id="L236" class="line" "+codedepthass="sre2">max2"+codedeptha hr7|108{
data_direction == qu38=write" class="sref">write 234        if (!
)in181    222" vers/s_isi/asshref= e=SCSI_MLQUEUE_TARGET_e=SCSI/scsi/scsi_lib.c#L223"e=SCSI_MLQUEUE_TARGET_BUSY" clas ss="sref">data_direction == retries, int  * Argumen3s:   392      unsignwrite)canrs/scsa hr7L169" classPE_Bc#"sref">retries, int  160<="line" nam="c5n    break;
    "L161" cassa hr7L169fpan class="commen   break;
)canrs/scsa hr)7|1"sref">retries, int  113
 234        if (!

)in181    222" #L154osi/asshref=data_direction == 
 196="sref">retries, int q"h )canrs/scsa hr7L169" classPE_Bc#cpyhrefver0="c5n"h     #L154lassa hr7L169fpan class="commenh )canrs/scsa hr)7|1"sref">retries, int  *     4        and it cannot ac4ept a408" class="linhrefpyhrefver0="c5n"h data_direction ==  200 113
 204v40ref">max_target_blocked;

 214flags);
2drivers/s2si/scsi_l4L704" cla4s/span>
 * a href="drivers/scrunrs/scsc#L184" id="L184" class="line" name="L184"> 4>804" cla4s"L196" class="line" nam4csi_q4eue_insert" class="sref">__sreL184" id="L184" class="line" name="L184"> 4>904" cla4s      We do this for on4son" 40 cases.  Either the host is bue="L186"> 186Sele 4s/scsi/sc4i_lib.c#L208" id="L208" 4lass=41 more commands for the time bL184" id="L184" class="line" name="L184"> 4id="L209"4class="line" name="L209"4 209<41comment"> *              or than class="comqme="L16-    t0="drive0" c2s s/scsa 84" id="L184" class="line" name="L184"> 4iline" na4/scsi_lib.c#L210" id="L240" cl41mment"> *              commanock status: Assumed that lock is not held 4csi/scsi_4ib.c#L211" id="L211" cla4s="li41s:       This could be calledpRrite 192 *
 213 *
 214 415 *turns the req->errorblocked" 2lass="sref46" class=4line" name="L216"> 216)rs/scrunrs/scshref= 236
 236data_direction == c4ss="line" name="L217"> 24741line"="sref">retries, int 428" class="lin * field.
 236max2"+codef">m2       q"verved_li nak;
165""line" name="L57"a>        data_direction == 
 224i4t data_direction == data_direction ==  226  4     42       unsigned char ef="+code=sense"f="dsinglde=unsensert"> einglde=un, int c4class="sref">flags,
4a hre42ICE_BUSY" cla/a>            rk" class="comment">         * before blk_cleanup_queue() finishes.->requeue_work);
D43f="+code=kblowhilea href="+code=sdevli naempts="comment">    li naempts_queulassPef="+code=sense"   ved_li nak;
retries, int  160 214flags);
2drivers/s2si/scsi_l4+code=blk4get_request" class="sref4>blk_43ine" name="L192"> 192165""as "h flags);
2drivers/s2si/scsi_l4+lass="li4equest_queue,  213>>>>>>>>pppppppp* iverved s/scss,d="llan>
flags);
2drivers/s2si/scsi_l4+604" cla4_lib.c#L234" id="L234" c4ass="43me="L214"> 214>>>>>>>>pppppppp* dropsid:  "+code=req " id="n add us baeq to 97"" name="L197"> 197req)
 >>>>>>>>pppppppp* iverved_li ni_lib.c#L201" id="L201" class="line" name="4+code=buf4len" class="sref">buffle4 43class="comment"> * @timeout:>>>>>>>>pppppppp*_lib.c#L201" id="L201" class="line" name="4+"sref">c4si/scsi_lib.c#L238" id="4238" 43 cases.  Either the host is >>>>>>>>pppppppp* #L154cebuffe4, >>>>>>>pppppppp* is/scr"driverfn mu n s/s d:  #L154ce__GFP_WAIT<4a>))
44comment"> *              or >>>>>>>>pppppppp* or modifyed" iverved_li n ordiverved_nserti_lib.c#L201" id="L201" class="line" name="4esi_lib.c4L241" id="L241" class="l4ne" n44mment"> *              comma>>>>>>>>pppppppp*turns the req->errorblocked" 2lass="sref4ref="+cod4=memcpy" class="sref">me4cpyd8443e" name="L160"> 160<(    222" #L154osi/asshref=scsi_lib.c#L223"h data_direction == 4lk_unprep_requebuffmcpyd4u5r0"44ref">max_target_blocked;
{
 ef="+code=sense" id="L223" class="line" naefpan class="commeli naesert="comment">    li naesert" class="sref">q"verved_li nak;
qnextak;
cmd,
 * field.
}
c4{
    222" vers/s_isi/asshref=ef="+code=sense"f="de=SCSI_MLQUEUE_TARGET_e=SCSI/scs2scsi_lib.c#L223" id="L223" class="line" na =)c="sref">retries, int cmd,
4 *buffired"cherea>    wi4ueuen45ne" name="L160"> 160<<<<<<<< 160 113
bufflen 206
(         * before(-> ef="+code=sense"fore blkt">         * before blk/scs2scsi_lib.c#L223" id="L223" class="line" na"L236" class="line" name="L236"> 236
device-> 236
.max_a8(         * before( 236
device->c4"linPrev"L166" cgarbagum4an cl45ICE_BUSY" class="sref">SCSI_MLQUEUE_2fore blkt">         * before blk/scs2scsi_lib.c#L223"h ->        name="L113"> 113
4149 214 1624                231        int rk" class="sref">kblockd_schedule_work(q"h ->requeue_work);
target_blocked
)n>
 236 113
data_direction ==  46class/scsi_lib.c#L127" idrs/sc="drioderunrs/scsqueue_work)rs/scr"drioderunrs/scshref=data_direction ==  167retries, int  * field.
 236
 2364"+code=unbusy" class="sr4f">un47_TO_DEVICE);
 231        int r id="L223" class="line" naefpan class="commecsi/a"lir_of="L223" class="csi/a"lir_of/scs2scsi_lib.c#L223workqueue_work)work36 * field.
)r"driodework36( 236 236
 147120)rs/scrunrs/scshref=scsi_lib.c#L223class hr"L236"> 236 113
         * that are a4ready47si_liss="sref">data_direction ==  * @timeoutlass="sref">flags);
2drivers/s2si/scsi_l4rs/scsi/s4si_lib.c#L177" id="L177"4class47 cases.  Either the host is bua href="drivers/scr"driodePurposec#L184" id="L184" class="line" name="L184"> 479" id="L479" class="line" name="L479"> 48 more commands for the time bL184" id="L184" class="line" name="L184"> 4b.c#L180"4id="L180" class="line" n4me="L48comment"> *              or the="L186"> 186HoseleaL18t-processed" of Purple4ed Purposesi_lib.c#L201" id="L201" class="line" name="4b( 181      4  *              commanock status: Assumed that lock is not held 4b171" id=4"line" name="L182"> 182<4a>   48s:       This could be calledpan class="comqme="L16- c#L19 to ope2ate on_q="sref">flags);
2drivers/s2si/scsi_l4class="sr4f">spin_unlock_irqrestor4(48ine" name="L192"> 192qu48="line" name="L213"> 213<_lib.c#L201" id="L201" class="line" name="4b.c#L154"4csi_lib.c#L183" id="L1834 clas48me="L214"> 214
 *ock status: Assumed that lock is not held 486" id="L4href="drivers/scsi/scsi_4ib.c#48class="comment"> * @timeout:  e device retuAfter Purpose:Purple4" c, d: re may FULb reashlefkn class="comment"> *
 *
 *
 *              or thhhhhhhhhhhhhhI/O errorsn ofd:  mideleaof d:  ="drive,n ofwhich ="con class="comment"> *
 * Argumen4s:   49mment"> *              commanhhhhhhhhhhhhhhwe nee_lio ="drive.d:  b reashthat ccsi/after d:  baen class="comment"> *
 192 213)rs/scr"driodePurposen ef= 236
 236 cmsequeue_work)rs/sccmsei/sci/scsi_lib.c#L223cmd="L223" class="cmLa hr ss="sref">data_direction == 

retries, int  * field.


 *     5        and it cannot ac5ept a508" class="lins="sref">165""line" name="L57"a>        data_direction ==  200 * @timeoutlass="sref">flags);
2drivers/s2si/scsi_l5"3ine" na5e#L191" id="L191" class=5 * No50s:       This could be calleeeeeeeee*="L1nee_lio holdvadags rencebon 97" riverslio a/scsid:  "+cod bsingock status: Assumed that lock is not held 5>
 1925v50="line" name="L213"> 213>>>>>>>>thmay happen bscause rs/scunprepcr"drive() punsid:  Purpose:whichock status: Assumed that lock is not held 5>6
 214>>>>>>>>threle"com insiags rencebon 97" riversi_lib.c#L201" id="L201" class="line" name="5L704" cla5s/span>
 >>>>>>>>tturns the req->errorblocked" 2lass="sref5>804" cla5s"L196" class="line" nam5csi_q50mp;&                   * before blk_cleanup_queue() finishes. 236->requeue_work);




 236
 231        int rk" class="sref">kblockd_schedule_work(qclass hr"L236"> 236->requeue_work);
)rs/scrunrs/scshref=scsi_lib.c#L223class hr"L236"> 236 234        if (! 51720 216c5ss="line" name="L217"> 25751ass="linREQ_PREEMPL="dr="c5n4ND_SIZE"6 a5218" id="5218" class="line" name="5218">528" cl/scsi_lib.c#L127" idrs/scnextePurposequeue_work)rs/scnextePurposen ef= cmsequeue_work)rs/sccmsei/sci/scsi_lib.c#L223cmd="L223" class="cmLa hr ss="sref">data_direction == 
retries, int  * field.
 236
 236 236
 224i5t  214 226  5     52si_liss="sref">data_direction == , int c5class="sref">flags,
5a hre52ICE_BUSY" cla/a>            rc/scrunrs/scsqueue_work)rs/scrunrs/scshref=scsi_lib.c#L223class hr"L236"> 236drivers/scsi/scsi_lib.c#L182" id="L5e
 214D53f="+code=kblockd_schedule_wopun_rs/scs="L223" class="pun_rs/scs_queulassPef="+code=sense"/scsi/scsi_lib.c#L236" id="L236" class="line" "ine_gen/scsi/scsi_lib.c#L236"_gen/sc36blk_53amp;  , )rs/scrunr#L154s/scssn ef=data_direction == retries, int req)
 * field.
buffle5 53mp;&adrivers/scsi/scsi_lib.c#L182" id="L5+"sref">c5si/scsi_lib.c#L238" id="5238" 53ICE_BUSY" cla/a>            r#L154for_each_* field.
, const"h data_direction == buffe5,             rc/scrunrs/scsqueue_work)rs/scrunrs/scshref=scsi_lib.c#L223" id="L223" class="line" na"L236" class="line" name="L236"> 236
__GFP_WAIT<5a>))
54comme6" id="L206" class="line" name="L2065esi_lib.c5L241" id="L241" class="l5ne" n54_TO_DEVICE);
me5cpyd8543e" nrs/scsi/scsi_lib.c#L127" id__rs/scr"le"co_bufs rsqueue_work)__rs/scr"le"co_bufs rsn ef= cmsequeue_work)rs/sccmsei/sci/,n ot)#drivers/scsi/scsi_lib.c#L182" id="L5Gcode=blk5 5lk_unprep_requebuffmcpyd5u5r0"54="line" name="L213"> 213flags);
2drivers/s2si/scsi_l5ass="line5 nam 108{
 214flags);
2drivers/s2si/scsi_l5aef="+cod5="dr 108{
 *ock status: Assumed that lock is not held 5acode=buf5f=REQ_TYPE_BLOCK_PC 84}
 * @timeout:  e="L186"> 186P18t-processed" of Purple4ed Purposes (usuallyvinvokd cat esen class="comment"> *
c5{
 5id="L149"5clas2="lin25href="+code=5md" c55comment"> *              or than class="comcmd="L166- Purpose:that is Purple4ei_lib.c#L201" id="L201" class="line" name="54si_lib.c5 *buffired"cherea>    wi5ueuen55mment"> *              commanhhhhhhhhhhhhhherrorL166- 0f(bufflen 192 206
 213<_lib.c#L201" id="L201" class="line" name="5"ss="line5id="2154" 2lass="line" n5md" c55me="L214"> 214 *ock status: Assumed that lock is not held 5"code=buf52togL120">.max_a8 * @timeout:  Rritec5"linPrev"L166" cgarbagum5an cl55 cases.  Either the host is b_lib.c#L201" id="L201" class="line" name="5aass=prev5L16sclarity * Nks by zer5ss="a56 more commands for the time bue device returnrivisd="llae:"L20b rea riverslr"drivesn oforder do_lib.c#L201" id="L201" class="line" name="5ad="L149"5ock2d26 name="L149">5149 *              or thhhhhhhhhhhhhhmarr rcsi/numbcsoof sectors as Purple4ei_lib.c#L201" id="L201" class="line" name="5>lajq5_lib.c#L160" id="L160" c5ass="56mment"> *              commanh_lib.c#L201" id="L201" class="line" name="5>ef="+cod5                *
target_blocked 192 213 214 cmsequeue_work)rs/sccmsei/sci/scsi_lib.c#L223rs/scen/cr"drivequeue_work)rs/scen/cr"driven ef= cmsequeue_work)rs/sccmsei/sci/scsi_lib.c#L223cmd="L223" class="cmLa hr,Us/scsi/scsi_lib.c#Lerror="L223" class="errora hr,e req->errorblocked" 2lass="sref5>code=buf566" class="line" name="L566"> 56mp;&  
c5"> 167retries, int  236
 236 236
un57_TO_DEVICE);
 231 213flags);
2drivers/s2si/scsi_l5Ld" class5/a>( 192flags);
2drivers/s2si/scsi_l5L> 206 157="line" name="L213"> 213>>>>>>>>thto c#L19 t:  ="ma"ldcsoof t: mi_lib.c#L201" id="L201" class="line" name="53.c#L154"5        * Requeue this c5mmand57me="L214"> 214>>>>>>>>tturns the req->errorblocked" 2lass="sref53Som     5t">         * that are a5ready577e" name="L16()n>

, consterror="L223" class="errora hr,csi/scsi_lib.c#Lbytesd.
retries, int  214c5si_lib.c#L177" id="L177"5class57ICE_BUSY" class="sref( 588" class="linhref="+code=blk_an class="commen>
)n>

, consterror="L223" class="errora hr)#drivers/scsi/scsi_lib.c#L182" id="L5b.c#L180"5id="L180" class="line" n5me="L58id="L169" class="lineelsec="sref">retries, int  181      5  160<<<<<<<<<(
retries, int  182<5a>   583e" name="L160"> 160 214spin_unlock_irqrestor5(58ine" name="L192"> 192 197qu58="line" name="L213"> 213pppppppppppppppppppppppppppppppp* lefkoscssn ofd:  fro/scof t: " name="L197"> 197 214 197 pppppppppppppppppppppppppppppppp*turns the req->errorblocked" 2lass="sref586" id="L5href="drivers/scsi/scsi_5ib.c#58mp;&  )rs/scr"le"co_bufs rsn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L5bs/scsi/s5csi_lib.c#L187" id="L1875 clas58ICE_BUSY" class="srefcccccccccccccccc/a>            rc/scr"driodePurposequeue_work)rs/scr"driodePurposen ef=scsi_lib.c#L223class hr"L236"> 236, constcmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L5ers/scsi/5csi_lib.c#L188" id="L1885 clas598" class="linhref="+code=blk_cccccccc/a>            cmd="L223" class="cmLa hrefpan class="commeNULL="L223" class="NULL/scs"drivers/scsi/scsi_lib.c#L182" id="L5e.c#L180"5b.c#L189" id="L189" clas5="lin59id="L169" class="lineeeeeeeee6" id="L206" class="line" name="L2065e( * Argumen5s:   59ne" name="L160"> 160<<<<<<<<            cmd="L223" class="cmLa hr"drivers/scsi/scsi_lib.c#L182" id="L5e171" id=5c#L191" id="L191" class=5line"593e" name="L160"> 160 113
 113
max_target_blocked;
 214 >>>>>>>>turnrivwillago186id:  "+cod ="drive f href="oat d:  en/, so we don0" c2turns the req->errorblocked" 2lass="sref5e6" id="L5="L196" class="line" nam5="L1959class="comment"> * @timeout:>>>>>>>>a nee_lio worry about la hrhed" " od: r Purpose." name="L197"> 197 *     6        and it cannot ac6ept a609        )__rs/scr"le"co_bufs rsn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr,U0 "drivers/scsi/scsi_lib.c#L182" id="L6"1 *     6 .c#L189" id="L189" clas6class60 href="drivers/scsi/scsi_libes/scnextePurposequeue_work)rs/scnextePurposen ef=sdev, constcmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L6"line" na6e="L200"> 200            NULL="L223" class="NULL/scs"drivers/scsi/scsi_lib.c#L182" id="L6"3ine" na6e#L191" id="L191" class=6 * No603e" n6" id="L206" class="line" name="L2066>
v60="linrs/scsi/a>            in3" id=L223" class="in3" i="+cos="sref">s/scsi/scsi_lib.c#Le" nasgtabls_indexqueue_work)rs/scsgtabls_indexn ef=s="sref">shorscsi/scsi_lib.c#Lnass=queue_work)nass=i/sc)e req->errorblocked" 2lass="sref6>6
retries, int 
s/scsi/scsi_lib.c#Lindexqueue_work)indexn ef"drivers/scsi/scsi_lib.c#L182" id="L6"804" cla6s"L196" class="line" nam6csi_q60mp;&adrivers/scsi/scsi_lib.c#L182" id="L6>904" cla6s      We do this for on6son" 60ICE_BUSY" cla/a>            BUG_ONqueue_work)BUG_ONn ef=sdev, constnass=queue_work)nass=i/sc L236pan class="commeSCSI_MAX_SG_SEGMENTSqueue_work)SCSI_MAX_SG_SEGMENTSa hr "drivers/scsi/scsi_lib.c#L182" id="L6s/scsi/sc6i_lib.c#L208" id="L208" 6lass=619drivers/scsi/scsi_lib.c#L182" id="L6id="L209"6class="line" name="L209"6 209<61 href="driver( 160)indexn efefp0"drivers/scsi/scsi_lib.c#L182" id="L6s3ine" na6ib.c#L211" id="L211" cla6s="li61="L231"> 231)indexn efefpsi/scsi_lib.c#Ls/s_count_orderqueue_work)s/s_count_ordern ef=sdev, constnass=queue_work)nass=i/sc) - 3"drivers/scsi/scsi_lib.c#L182" id="L6s5max_target_blocked;
 61720 216c6ss="line" name="L217"> 26761ass="rs/scsi/scsi_lib.c#L127" idrs/scsg_fresqueue_work)rs/scsg_fresn ef=)rgla hr,Us="sref">s/scsi/scsi_lib.c#Lnass=queue_work)nass=i/sc)e req->errorblocked" 2lass="sref6218" id="6218" class="line" name="6218">628" cl="sref">retries, int )r)rgpn ef"drivers/scsi/scsi_lib.c#L182" id="L6>line" na6L220" id="L220" class="l6ne" n62_TO_DEVICE);
 231        int rgpqueue_work)rgpn efefpan class="commens/scsg_poolsqueue_work)rs/scsg_poolsn efe+csi/scsi_lib.c#Le" nasgtabls_indexqueue_work)rs/scsgtabls_indexn ef=si/scsi_lib.c#Lnass=queue_work)nass=i/sc)"drivers/scsi/scsi_lib.c#L182" id="L6>

)mempool_fresn ef=si/scsi_lib.c#Lrglqueue_work)rgla hr,U/a>        int rgpqueue_work)rgpn ef"L236" class="line" poolqueue_work)pooli/sc)"drivers/scsi/scsi_lib.c#L182" id="L6>5 224i6t  234        if (! 226  6     62si_lirs/scsi)rs/scsg_allocn ef=s="sref">s/scsi/scsi_lib.c#Lnass=queue_work)nass=i/sc,U/a>        int gfp_nak;
, int retries, int c6class="sref">flags,
6a hre62ICE_BUSY" cla)rs/scsg_poolsn efe+csi/scsi_lib.c#Le" nasgtabls_indexqueue_work)rs/scsgtabls_indexn ef=si/scsi_lib.c#Lnass=queue_work)nass=i/sc)"drivers/scsi/scsi_lib.c#L182" id="L6esi_lib.c6=DMA_TO_DEVICE" class="s6ef">D63f="+code=kblowrite            mempool_allocqueue_work)mempool_allocn ef=si/scsi_lib.c#Lrgpqueue_work)rgpn ef"L236" class="line" poolqueue_work)pooli/sc,U/a>        int gfp_mas/a>->, )rs/scalloccsgtablsn ef= ;          int gfp_mas/a>->req)
retries, int buffle6 63mp;&  
c6si/scsi_lib.c#L238" id="6238" 63ass="linREQ_PREEMPL="dr="c5n4ND_SIZE"6 a6ef">buffe6,         __GFP_WAIT<6a>))
64
)_csg_alloc_tablsn ef=lassPef="+code=sense"/bqueue_work)rdbi/sc"L236" class="line" tablsqueue_work)tablsn ef,U/a>        int nass=queue_work)nass=i/sc,U/a>        int SCSI_MAX_SG_SEGMENTSqueue_work)SCSI_MAX_SG_SEGMENTSa hr, me6cpyd8643e" name="L160"> 160)unlikelyn ef=si/scsi_lib.c#Lr"L236
6lk_unprep_requebuffmcpyd6u5r0"645e" name="L160"> 160)rdbi/sc"L236" class="line" tablsqueue_work)tablsn ef,U/a>        int SCSI_MAX_SG_SEGMENTSqueue_work)SCSI_MAX_SG_SEGMENTSa hr, {
 ;  data_direction == }
            r"L236
c6{
drivers/scsi/scsi_lib.c#L182" id="L6id="L149"6clas2="lin25href="+code=6md" c65commers/scsi/scsi_lib.c#L127" idrs/scfres_sgtablsqueue_work)rs/scfres_sgtablsn ef=    wi6ueuen65mment="sref">retries, int  231        int _csg_fres_tablsqueue_work)_csg_fres_tablsn ef=lassPef="+code=sense"/bqueue_work)rdbi/sc"L236" class="line" tablsqueue_work)tablsn ef,U/a>        int SCSI_MAX_SG_SEGMENTSqueue_work)SCSI_MAX_SG_SEGMENTSa hr,rs/scsi/scsi_libes/scsg_fresqueue_work)rs/scsg_fresn ef)"drivers/scsi/scsi_lib.c#L182" id="L64code=blk6csi/scsi_ref">bufflen6        <        *2
max_target_blocked;
)__rs/scr"le"co_bufs rsn ef= cmsequeue_work)rs/sccmsei/sci/an class="commecmd="L223" class="cmLa hr,Us/scsi/scsi_lib.c#Ldo_bidscche->retries, int .max_a8c6"linPrev"L166" cgarbagum6an cl65ICE_BUSY" cla()rdbi/sc." class="line" tablsqueue_work)tablsn ef." class="line" nass=queue_work)nass=i/sc)e req->errorblocked" 2lass="sref6aass=prev6L16sclarity * Nks by zer6ss="a668" class="linhref="+c/a>            rc/scfres_sgtablsqueue_work)rs/scfres_sgtablsn ef=lassPef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" "/bqueue_work)rdbi/sc)"drivers/scsi/scsi_lib.c#L182" id="L6ad="L149"6ock2d26 name="L149">6149lajq6_lib.c#L160" id="L160" c6ass="66f="+code=kblockd_schedule_womems"L236
)rdbi/sc, 0, sizeof ef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" "/bqueue_work)rdbi/sc))"drivers/scsi/scsi_lib.c#L182" id="L6aef="+cod6               target_blocked)rs/scbidsccmsen ef=si/scsi_lib.c#Lcmd="L223" class="cmLa hr )c="sref">retries, int  160<)bidsc"/b/scsef"sref">retries, int  ;   nexterca hr"L236" class="line" "pecialqueue_work)rpecial/scs"drivers/scsi/scsi_lib.c#L182" id="L6>Som     6id="L164" class="line" n6me="L667" class="linhref="+c/a>            rc/scfres_sgtablsqueue_work)rs/scfres_sgtablsn ef=scsi_lib.c#L223bidsc"/bqueue_work)bidsc"/b/scs)"drivers/scsi/scsi_lib.c#L182" id="L6acode=buf666" class="line" name="L666"> 66mp;&  )bidsc"/b/scs)"drivers/scsi/scsi_lib.c#L182" id="L6a"sref">c6"> 167 nexterca hr"L236" class="line" "pecialqueue_work)rpecial/scsefpan class="commeNULL="L223" class="NULL/scs"drivers/scsi/scsi_lib.c#L182" id="L6ref="driv6rs/scsi/scsi_lib.c#L168"6id="L678" class="lin6" id="L206" class="line" name="L2066n>
un672p;&   160            rc/scfres_sgtablsqueue_work)rs/scfres_sgtablsn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr"L236" class="line" pro54s/bqueue_work)pro54s/b/scs)"drivers/scsi/scsi_lib.c#L182" id="L6Ld" class6/a>( 167ref">max_target_blocked;
 214         * that are a6ready675 *=a href="drivers/scr"le"co_bufs rs()ss="sref">flags);
2drivers/s2si/scsi_l6s6" id="L6/a> * @timeout: ss="sref">flags);
2drivers/s2si/scsi_l6s"sref">c6si_lib.c#L177" id="L177"6class67 cases.  Either the host is bue="L186"> 186Curple4" c processed" "L20b rea riverslI/O r"drives." name="L197"> 197 68 more commands for the time bL184" id="L184" class="line" name="L184"> 6b.c#L180"6id="L180" class="line" n6me="L68comment"> *              or than class="comcmd="L16- Purpose:that we are bailasg." name="L197"> 197 181      6  *              comman" name="L197"> 197 182<6a>   68s:       This could be calledpL hr rs/su="cAssclae:that no a hr is heldfupon6nserti_lib.c#L201" id="L201" class="line" name="6class="sr6f">spin_unlock_irqrestor6(68ine" name="L192"> 192 197qu68="line" name="L213"> 213  Rrite 214 197 < r"jects a" name="L197"> 197 * @timeout:               Purpose, we musthrele"cohresources alloca4ed during" name="L197"> 197c6csi_lib.c#L187" id="L1876 clas68 cases.  Either the host is buuuuuuuuuuuuuud:  __init_io() f href=".  Primarily:thisdw uldfinvolv " name="L197"> 197 197 *              or thhhhhhhhhhhhhhbufs rsi_lib.c#L201" id="L201" class="line" name="6e( * Argumen6s:   69mment"> *              commanturns the req->errorblocked" 2lass="sref6e171" id=6c#L191" id="L191" class=6line"693e" n/scsi_lib.c#L127" idrs/scr"le"co_bufs rsqueue_work)rs/scr"le"co_bufs rsn ef= cmsequeue_work)rs/sccmsei/sci/scsi_lib.c#L223cmd="L223" class="cmLa hr ss="sref">data_direction == retries, int )__rs/scr"le"co_bufs rsn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr,U1)"drivers/scsi/scsi_lib.c#L182" id="L6pon entry6
)rs/scr"le"co_bufs rsn ef)"drivers/scsi/scsi_lib.c#L182" id="L6p6" id="L6="L196" class="line" nam6="L1969mp;&adrivers/scsi/scsi_lib.c#L182" id="L6es/scsi/s6       We do this for on6 of t69ass="rs/scsis/scsi/scsi_lib.c#L__rs/scerrorcfromh#L154nytequeue_work)__rs/scerrorcfromh#L154nyten ef= cmsequeue_work)rs/sccmsei/sci/an class="commecmd="L223" class="cmLa hr,Us/scsi/scsi_lib.c#LresulL236
data_direction ==  *     7        and it cannot ac7ept a708" cl="sref">retries, int  200retries, int 
retries, int v705e" name="L160"> 160
 break"drivers/scsi/scsi_lib.c#L182" id="L7>7

retries, int 
retries, int  160)seth#L154nyten ef=scsi_lib.c#L223cmd="L223" class="cmLa hr,Usi/scsi_lib.c#LDID_OK="L223" class="DID_OKn ef)"drivers/scsi/scsi_lib.c#L182" id="L7s3ine" na7ib.c#L211" id="L211" cla7s="li713e" name="L160"> 160            error="L223" class="errora hrefp-
retries, int  /a>            error="L223" class="errora hrefp- 717" class="linhref="+cbreak"drivers/scsi/scsi_lib.c#L182" id="L7i8 216c7ss="line" name="L217"> 27771ass="linREQ_PREEMPL="dr="c5n4ND_SIZE"6 a7218" id="7218" class="line" name="7218">728" class="linwrite            error="L223" class="errora hr"drivers/scsi/scsi_lib.c#L182" id="L7>
);
 192flags);
2drivers/s2si/scsi_l7>5 224i7t  213<_lib.c#L201" id="L201" class="line" name="7c604" cla7scsi_lib.c#L225" id="L227" cla72me="L214"> 214 186Curple4" c processed" "L20b rea riverslI/O r"drives." name="L197"> 197 226  7     725 *ock status: Assumed that lock is not held 72" class=7a>, int  * @timeout:  an class="comcmd="L- Purpose:that is finishee." name="L197"> 197c7class="sref">flags,
7a hre72 cases.  Either the host is b_lib.c#L201" id="L201" class="line" name="7ef="drive7s/scsi/scsi_lib.c#L228" 7d="L273 more commands for the time buL hr rs/su="cAssclae:that no a hr is heldfupon6nserti_lib.c#L201" id="L201" class="line" name="7e
 *              or t_lib.c#L201" id="L201" class="line" name="7eline" na7=DMA_TO_DEVICE" class="s7ef">D73mment"> *              commanhRrite 192s/ terms of Papabilities do_lib.c#L201" id="L201" class="line" name="7+lass="li7equest_queue,  213               d:  f href="othat creatae:th  itatter-gad: r li ni_lib.c#L201" id="L201" class="line" name="7e604" cla7_lib.c#L234" id="L234" c7ass="73me="L214"> 214req)
 buffle7 73class="comment"> * @timeout:               th  logiclio dealrwithmeneaned" up afterwardsi_lib.c#L201" id="L201" class="line" name="7e"sref">c7si/scsi_lib.c#L238" id="7238" 73 cases.  Either the host is b_lib.c#L201" id="L201" class="line" name="7ef">buffe7, __GFP_WAIT<7a>))
74comment"> *              or thhhhhhhhhhhhhhth  ipecifiae:numbcsoof sectors.tuIfewe are done, t: " name="L197"> 197 *              commanhhhhhhhhhhhhhhPurpose:b rea willane r"le"cod ose:th  "+cod f href="" name="L197"> 197me7cpyd874s:       This could be calledppppppppppppppwillane go186e.tuIfewe are not done:th newe have do_lib.c#L201" id="L201" class="line" name="7Gcode=blk7  192 213<_lib.c#L201" id="L201" class="line" name="7r604" cla7 nam 108{
 214 2"llers/scr"driodePurpose(). urnd ="drive_lib.c#L201" id="L201" class="line" name="7r5" id="L7="dr 108{
  197}
 * @timeout:               ===a newhPurpose:willane creatae:"L20it. urnrivsh uld" name="L197"> 197c7{
 *              or t_lib.c#L201" id="L201" class="line" name="74si_lib.c7 *buffired"cherea>    wi7ueuen75mment"> *              commanhhhhhhhhhhhhhhb)uWe c"> 2"llers/scdriodeinsert(). urnd ="drive:will_lib.c#L201" id="L201" class="line" name="74si/scsi_7_li2.c#L121" id="L151" c7ass="75s:       This could be calledppppppppppppppuuune put baea on:th  "+cod ose:="eriae:using:th  i151_lib.c#L201" id="L201" class="line" name="74code=blk7csi/scsi_ref">bufflen 1927        <        *2
 213<_lib.c#L201" id="L201" class="line" name="7"ss="line7id="2154" 2lass="line" n7md" c75me="L214"> 214 2"llen>
 .max_a8 * @timeout: turns the req->errorblocked" 2lass="sref74"sref">c7"linPrev"L166" cgarbagum7an cl75ICE_B/scsi_lib.c#L127" idrs/scio_Purple4" cqueue_work)rs/scio_Purple4" cn ef= cmsequeue_work)rs/sccmsei/sci/an class="commecmd="L223" class="cmLa hr,Us="sref">s/scsi/scsi_lib.c#Lgo1d_bytesd.
data_direction == retries, int 26 name="L149">7149

 236
 236 236


target_blocked sense_hdrqueue_work)rs/scsense_hdre" naan class="commenshdrqueue_work)rshdre" n"drivers/scsi/scsi_lib.c#L182" id="L7>ss="line7scsi_lib.c#L163" id="L167" cla76="line" name=s/scsi/scsi_lib.c#Leense_valiequeue_work)rense_valiea hrefp0"drivers/scsi/scsi_lib.c#L182" id="L7>5" id="L7id="L164" class="line" n7me="L767" class="lins/scsi/scsi_lib.c#Leense_deferreequeue_work)rense_deferreea hrefp0"drivers/scsi/scsi_lib.c#L182" id="L7>" class=766" class="line" name="L766"> 76mp;&  )ACTION_FAILa hr,Usi/scsi_lib.c#LACTION_REPREPqueue_work)ACTION_REPREPa hr,Usi/scsi_lib.c#LACTION_RETRYqueue_work)ACTION_RETRYa hr,drivers/scsi/scsi_lib.c#L182" id="L7>"sref">c7"> 167)ac4" cn ef"drivers/scsi/scsi_lib.c#L182" id="L7ref="driv7rs/scsi/scsi_lib.c#L168"7id="L778" class="linchari/scsi_lib.c#L223descrip4" cqueue_work)descrip4" c" naefpan class="commeNULL="L223" class="NULL/scs"drivers/scsi/scsi_lib.c#L182" id="L7n>
un772p;&  retries, int  160            rense_valiequeue_work)rense_valiea hrefpan class="comment"> curpose_normalizecsensequeue_work)rs/sccurpose_normalizecsensen ef=scsi_lib.c#L223cmd="L223" class="cmLa hr,UlassPef="+code=sense"shdrqueue_work)rshdre" n)"drivers/scsi/scsi_lib.c#L182" id="L7Ld" class7/a>()rense_valiea hr ss="sref">data_direction ==  206 1775e" name="L160"> 160<0"> 160            rense_deferreequeue_work)rense_deferreea hrefpan class="comment"> sense_is_deferreequeue_work)rt"> sense_is_deferreen ef=lassPef="+code=sense"shdrqueue_work)rshdre" n)"drivers/scsi/scsi_lib.c#L182" id="L7Lss="line7        * Requeue this c7mmand77="line" name=6" id="L206" class="line" name="L20673Som     7t">         * that are a7ready77si_liss="sref">data_direction == )cmL_typea hreffpan class="commeREQ_TYPE_BLOCK_PCqueue_work)REQ_TYPE_BLOCK_PCa hr c==l14"> 214c7si_lib.c#L177" id="L177"7class77ICE_BUSY" class="sref(retries, int  788" class="linhref="+code=blk_(
)rensen ef c="sref">retries, int  1607me="L181"> 181      7  *              commaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa SG_IO wanes current ose:deferree errorsn ib.c#L201" id="L201" class="line" name="77ef="+cod7"line" name="L182"> 182<7a>   78s:       This could be calleaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaturns the req->errorblocked" 2lass="sref7class="sr7f">spin_unlock_irqrestor7(784p;&  )lec" naefp8e+csi/scsi_lib.c#Lcmd="L223" class="cmLa hr"L236" class="line" "ense_bufs rqueue_work)rense_bufs ra hr[7]"drivers/scsi/scsi_lib.c#L182" id="L77> 206qu78ref">max_target_blocked;
 ;  )lec" naeL236pan class="commeSCSI_SENSE_BUFFERSIZE236
data_direction == )lec" naefpan class="commeSCSI_SENSE_BUFFERSIZE236
)rensen ef,Usi/scsi_lib.c#Lcmd="L223" class="cmLa hr"L236" class="line" "ense_bufs rqueue_work)rense_bufs ra hr,ccsi/scsi_lib.c#Llecqueue_work)lec" na)"drivers/scsi/scsi_lib.c#L182" id="L77"sref">c7csi_lib.c#L187" id="L1877 clas78ICE_BUSY" class="srefccccccccccccccccsi/scsi_lib.c#Lred236
)sense_lec" naefpan class="commelecqueue_work)lec" na"drivers/scsi/scsi_lib.c#L182" id="L7ers/scsi/7csi_lib.c#L188" id="L1887 clas798" class="linhref="+code=blk_6" id="L206" class="line" name="L2067e.c#L180"7b.c#L189" id="L189" clas7="lin79id="L169" class="lineeeeeeeee()rense_deferreea hr ss="sref">data_direction ==  * Argumen7s:   79ne" name="L160"> 160
 160<6" id="L206" class="line" name="L2067elass="sr7i_lib.c#L192" id="L192" 7lass=794p;&   213>>>>>>>>>>>>>>>>* __rs/scerrorcfromh#L154nyte may have ="set t:  #L154nyten ns the req->errorblocked" 2lass="sref7e.c#L154"7
 214>>>>>>>>>>>>>>>*turns the req->errorblocked" 2lass="sref7e4

            red236


)="sid_leca hrefpan class="comment"> s/s_="sidqueue_work)rt"> s/s_="sidn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L8"> *     8        and it cannot ac8ept a809drivers/scsi/scsi_lib.c#L182" id="L8"1 *     8 .c#L189" id="L189" clas8class80id="L169" class="line(retries, int  200 160 192v80="line" name="L213"> 213>>>>>>>>>>>>>>>>aaaaaaaa*turns the req->errorblocked" 2lass="sref8>6
 ss="srefef="+code=sensered236
 nexterca hr"L236" class="line" ="sid_lecqueue_work)="sid_leca hrefpan class="comment"> icqueue_work)rs/scinn ef=si/scsi_lib.c#Lcmd="L223" class="cmLa hr "L236" class="line" ="sidqueue_work)="sida hr"drivers/scsi/scsi_lib.c#L182" id="L8>7
data_direction == 8)rs/scr"le"co_bufs rsn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L8"9
drivers/scsi/scsi_lib.c#L182" id="L8id="L209"8class="line" name="L209"8 209<81id="L169" class="lineeeeeeeeeef="+code=sensennextePurposequeue_work)rs/scnextePurposen ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L8iline" na8/scsi_lib.c#L210" id="L280" cl81ne" name="L160"> 160<<<<<<<< 160<6" id="L206" class="line" name="L2068s
max_target_blocked;
 214 817" class="linscsi_lib.c#L223BUG_ONqueue_work)BUG_ONn ef=ef="+code=sensen>
 n>

 216c8ss="line" name="L217"> 287819"line" name=l14"> 21482 more commands for the time         * Next dealrwithmany sectors whichewe w re able do currectlyn ns the req->errorblocked" 2lass="sref82d="L209"8"drivers/scsi/scsi_lib.c8L219"82comment"> *              or         * hoselei_lib.c#L201" id="L201" class="line" name="8>line" na8L220" id="L220" class="l8ne" n82mment"> *              commaaaaaaaaa*turns the req->errorblocked" 2lass="sref8csi/scsi_8d="L221" class="line" na8e="L282="L231"> 231        int SCSI_LOG_HLCOMPLETE236
-> *         string">"%u sectors total, "urns the req->errorblocked" 2lass="sref8c

 214string">"%d bytes done.\n"urns th,drivers/scsi/scsi_lib.c#L182" id="L8>5 224i8t  160<0"> 160
 n>

 226  8     827"line" name=l14"> 214 * @timeout:        * Recoorbee errors nee_c8class="sref">flags,
8a hre82 cases.  Either the host is         * ashsuccess, so fiddle t:  ="sulL sens : re.  FL20BLOCK_PCa ns the req->errorblocked" 2lass="sref8ef="drive8s/scsi/scsi_lib.c#L228" 8d="L283 more commands for the time         * we already took a sepyoof t:  originalrinto rq"L236errors whicha ns the req->errorblocked" 2lass="sref8ed="L209"8ers/scsi/scsi_lib.c#L2308 id="83comment"> *              or         * rivwhat getsD83mment"> *              commaaaaaaaaa*turns the req->errorblocked" 2lass="sref8esi/scsi_8231" id="L231" class="li8e" na83="L231"> 231<()rshdre" n." class="line" rense_keyqueue_work)rense_keya hreffpan class="commeRECOVERED_ERRORqueue_work)RECOVERED_ERRORa hr )c="sref">retries, int  213>>>>>>>>>>>>>>>>* print sinc  2"ll r wanes ATA registers.tOnlyooccurs ="" name="L197"> 197 214>>>>>>>>>>>>>>>* SCSIaATA PASS_THROUGH Purposes wh neCK_COND=1" name="L197"> 197req)
 >>>>>>>>>>>>>>>>*turns the req->errorblocked" 2lass="sref8e8buffle8 83mp;&  )rshdre" n." class="line" ascqueue_work)asca hreffp0x0)classPE_Bc#c ef="+code=sense#shdrqueue_work)rshdre" n." class="line" ascd236
c8si/scsi_lib.c#L238" id="8238" 83ICE_BUSY" class="srefss="sref"drivers/scsi/scsi_lib.c#L182" id="L8ef">buffe8, 
__GFP_WAIT<8a>))
84id="L169" class="lineeeeeeeeeef="+code=sensenprintcsensequeue_work)rs/scprintcsensen ef=s> *         string">""urns th,pan class="commecmd="L223" class="cmLa hr)"drivers/scsi/scsi_lib.c#L182" id="L8esi_lib.c8L241" id="L241" class="l8ne" n84ne" name="L160"> 160
me8cpyd8843e" name="L160"> 160*turns the req->errorblocked" 2lass="sref8Gcode=blk8 {
{
 214}
 * @timeout:::::::::* A:numbcsoof bytes w re successfullyvread.tuIfed: reurns the req->errorblocked" 2lass="sref8e"sref">c8{
 *              or ::::::::*turns the req->errorblocked" 2lass="sref84si_lib.c8 *buffired"cherea>    wi8ueuen852p;&  )rs/scen/cr"driven ef=scsi_lib.c#L223cmd="L223" class="cmLa hr,Uef="+code=senseerror="L223" class="errora hr,Uef="+code=sensego1d_bytesd.
 160bufflen
retries, int .max_a8recoorbyn ns the req->errorblocked" 2lass="sref84"sref">c8"linPrev"L166" cgarbagum8an cl85 cases.  Either the host is ::::::::::::::::* reasons.tuJusthreery t:  Purpose:ase:seevwhatn ns the req->errorblocked" 2lass="sref8aass=prev8L16sclarity * Nks by zer8ss="a86 more commands for the time ::::::::::::::::* happensi_lib.c#L201" id="L201" class="line" name="8ad="L149"8ock2d26 name="L149">8149 *              or ::::::::::::::::*turns the req->errorblocked" 2lass="sref8>lajq8_lib.c#L160" id="L160" c8ass="86ne" name="L160"> 160)ac4" cn efefpsi/scsi_lib.c#LACTION_RETRYqueue_work)ACTION_RETRYa hr"drivers/scsi/scsi_lib.c#L182" id="L8aef="+cod8               retries, int target_blocked)rshdre" n." class="line" rense_keyqueue_work)rense_keya hr c="sref">retries, int  160)UNIT_ATTENTIONe" n:"sref">retries, int  ss="sref(
retries, int  86class="comment"> * @timeout:::::::::::::::::::::::::::::::::*:ase:quietlyvrefucoh"urd: r accessi_lib.c#L201" id="L201" class="line" name="8a"sref">c8"> 167 160)descrip4" c" naefpa> *         string">"Media Changed"urns th"drivers/scsi/scsi_lib.c#L182" id="L8nlajq8"+code=unbusy" class="sr8f">un87ne" name="L160"> 160)ac4" cn efefpsi/scsi_lib.c#LACTION_FAILqueue_work)ACTION_FAILa hr"drivers/scsi/scsi_lib.c#L182" id="L8nef="+cod8L171" class="line" name=8L171"873e" name="L160"> 160<<<<<<<<<}celsee="sref">retries, int ( 187="line" name="L213"> 213>>>>>>>>>>>>>>>>aaaaaaaaaaaaaaaa* bus ="set.86Cuuldfnot have been aurns the req->errorblocked" 2lass="sref8rss="line8        * Requeue this c8mmand87me="L214"> 214>>>>>>>>>>>>>>>aaaaaaaaaaaaaaaa* media change, so we justhreery t: urns the req->errorblocked" 2lass="sref8r5" id="L8t">         * that are a8ready875 >>>>>>>>>>>>>>>>aaaaaaaaaaaaaaaa* Purpose:ase:seevwhat happensi_lib.c#L201" id="L201" class="line" name="8s6" id="L8/a> * @timeout:::::::::::::::::::::::::::::::::*turns the req->errorblocked" 2lass="sref8r"sref">c8si_lib.c#L177" id="L177"8class87ICE_BUSY" class="srefffffffffffffffffsi/scsi_lib.c#Lac4" cqueue_work)ac4" cn efefpsi/scsi_lib.c#LACTION_RETRYqueue_work)ACTION_RETRYa hr"drivers/scsi/scsi_lib.c#L182" id="L879" id="L879" class="line" name="L879"> 888" class="linhref="+code=blk_6" id="L206" class="line" name="L20687>
 181      8  160
retries, int  182<8a>   883e" name="L160"> 160<<<<<<<< 197spin_unlock_irqrestor8(88ine" name="L192"> 192qu88="line" name="L213"> 213>>>>>>>>>>>>>>>>aaaaaaaa* Purpose. urnd onlyothingothiivsh uld beurns the req->errorblocked" 2lass="sref87ss="line8csi_lib.c#L183" id="L1838 clas88me="L214"> 214>>>>>>>>>>>>>>>aaaaaaaa* w uld be a ten nyte read wh rd onlyoa sixurns the req->errorblocked" 2lass="sref875" id="L8href="drivers/scsi/scsi_8ib.c#885 >>>>>>>>>>>>>>>>aaaaaaaa* nyte read washsupportae. uAlso, on:a systemurns the req->errorblocked" 2lass="sref876" id="L8href="drivers/scsi/scsi_8ib.c#88class="comment"> * @timeout:::::::::::::::::::::::::* wh rd READ CAPACITY6failae, we may haveurns the req->errorblocked" 2lass="sref87"sref">c8csi_lib.c#L187" id="L1878 clas88 cases.  Either the host is ::::::::::::::::::::::::* read past t:  ese:of t:  diski_lib.c#L201" id="L201" class="line" name="8ers/scsi/8csi_lib.c#L188" id="L1888 clas89 more commands for the time ::::::::::::::::::::::::*turns the req->errorblocked" 2lass="sref8e.c#L180"8b.c#L189" id="L189" clas8="lin89id="L169" class="lineeeeeeeee( * Argumen8s:   89ne" name="L160"> 160)rshdre" n." class="line" ascqueue_work)asca hreffp0x20classPE_Bc#cpyhrefver0="c5n#shdrqueue_work)rshdre" n." class="line" ascd236
 160<<<<<<<<<<<<< ef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" cmsequeue_work)cmsen ef[0]effpan class="commeREAD_i_lib.c#L20a hrefREAD_i_e" na||e req->errorblocked" 2lass="sref8elass="sr8i_lib.c#L192" id="L192" 8lass=894p;&  )cmsen ef[0]effpan class="commeWRITE_i_lib.c#L20a hrefWRITE_i_a hr )c="sref">retries, int  160<0"> 160
 ;  )ac4" cn efefpsi/scsi_lib.c#LACTION_REPREPqueue_work)ACTION_REPREPa hr"drivers/scsi/scsi_lib.c#L182" id="L8e6" id="L8="L196" class="line" nam8="L1989mp;&  )asca hreffp0x10)hs   This could be calllaretries, int c8       We do this for on8 of t89ICE_BUSY" class="sref;  )descrip4" c" naefpa> *         string">"HL15aData Integrity Failure"urns th"drivers/scsi/scsi_lib.c#L182" id="L9"> *     9        and it cannot ac9ept a908" class="linhref="+code=blk_ccccccccsf="+code=senseac4" cqueue_work)ac4" cn efefpsi/scsi_lib.c#LACTION_FAILqueue_work)ACTION_FAILa hr"drivers/scsi/scsi_lib.c#L182" id="L9"1 *     9 .c#L189" id="L189" clas9class90id="L169" class="lineode=blk_ccccccccsf="+code=senseerror="L223" class="errora hrefp-sf="+code=senseEILSEQ="L223" class="EILSEQa hr"drivers/scsi/scsi_lib.c#L182" id="L9"2 *     9 ss="comment"> * Argumen9ass="90ne" name="L160"> 160 160<<<<<<<<<}celsee()asca hreffp0x20c||cef="+code=sense#shdrqueue_work)rshdre" n." class="line" ascqueue_work)asca hreffp0x24)c="sref">retries, int )cmsen ef[0])c="sref">retries, int v905e" name="L160"> 160<0"> 160)UNMAPe" n:"sref">retries, int 
 ss="sref0"> 160)descrip4" c" naefpa> *         string">"Discard failure"urns th"drivers/scsi/scsi_lib.c#L182" id="L9"7

retries, int retries, int )cmsen ef[1]classPp0x8)drivers/scsi/scsi_lib.c#L182" id="L9id="L209"9class="line" name="L209"9 209<91id="L169" class="lineeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeesf="+code=sensersscrip4" cqueue_work)descrip4" c" naefpa> *         string">"Discard failure"urns th"drivers/scsi/scsi_lib.c#L182" id="L9iline" na9/scsi_lib.c#L210" id="L290" cl91ne" name="L160"> 160<<<<<<<<<<<<<<<<<<<<<<<< 160)descrip4" c" naefdrivers/scsi/scsi_lib.c#L182" id="L9i4ine" na9lib.c#L212" id="L212" cl9ss="l914p;&  "Writ  i151 failure"urns th"drivers/scsi/scsi_lib.c#L182" id="L9i5ine" na9scsi_lib.c#L213" id="L219" cla915e" name="L160"> 160<0"> 160 ss="sref0"> 160retries, int  917" class="linhref="+cccccccccccccccccccccccccsi/scsi_lib.c#Lrsscrip4" cqueue_work)descrip4" c" naefpa> *         string">"Invalie Purpose:failure"urns th"drivers/scsi/scsi_lib.c#L182" id="L9i8 216 29791ICE_BUSY" class="srefss="srefode=blk_6" id="L206" class="line" name="L2069218" id="9218" class="line" name="9218">928" class="linhref="+code=blk_ccccccccsf="+code=senseac4" cqueue_work)ac4" cn efefpsi/scsi_lib.c#LACTION_FAILqueue_work)ACTION_FAILa hr"drivers/scsi/scsi_lib.c#L182" id="L92d="L209"9"drivers/scsi/scsi_lib.c9L219"92id="L169" class="lineode=blk_ccccccccsf="+code=senseerror="L223" class="errora hrefp-sf="+code=senseEREMOTEIO="L223" class="EREMOTEIOa hr"drivers/scsi/scsi_lib.c#L182" id="L92line" na9L220" id="L220" class="l9ne" n92ne" name="L160"> 160<<<<<<<<<} 160)ac4" cn efefpsi/scsi_lib.c#LACTION_FAILqueue_work)ACTION_FAILa hr"drivers/scsi/scsi_lib.c#L182" id="L924ine" na9si_cmnd result
 224i9t  160)ABORTED_COMMAND"lin:"sref">retries, int  ss="srefef="+code=senseac4" cqueue_work)ac4" cn efefpsi/scsi_lib.c#LACTION_FAILqueue_work)ACTION_FAILa hr"drivers/scsi/scsi_lib.c#L182" id="L927 226  9     927" class="linhref="+ccccccccc()asca hreffp0x10)h==l14"> 214)descrip4" c" naefpa> *         string">"Targe5aData Integrity Failure"urns th"drivers/scsi/scsi_lib.c#L182" id="L92"sref">c9class="sref">flags,
9a hre92ICE_BUSY" class="sref;  D93ne" name="L160"> 160)NOT_READY"lin:"sref">retries, int  160<<<<<<<< 192 213>>>>>>>>>>>>>>>>aaaaaaaa*turns the req->errorblocked" 2lass="sref9e604" cla9_lib.c#L234" id="L234" c9ass="93="line" name="L225"> ss="sref()asca hreffp0x04)c="sref">retries, int req)

retries, int buffle9 93mp;&  c9si/scsi_lib.c#L238" id="9238" 93ICE_BUSY" class="srefss="srefccccccccc"coh0x04:buffe9, __GFP_WAIT<9a>))
94id="L169" class="lineeeeeeeeeccccccccc"coh0x06: 160me9cpyd8943e" name="L160"> 160 160<0"> 160{
 ss="sref0"> 160)ac4" cn efefpsi/scsi_lib.c#LACTION_DELAYED_RETRYqueue_work)ACTION_DELAYED_RETRYa hr"drivers/scsi/scsi_lib.c#L182" id="L9r5" id="L9="dr 108{
}
retries, int c9{
)descrip4" c" naefpa> *         string">"Divers not ready"urns th"drivers/scsi/scsi_lib.c#L182" id="L940
)ac4" cn efefpsi/scsi_lib.c#LACTION_FAILqueue_work)ACTION_FAILa hr"drivers/scsi/scsi_lib.c#L182" id="L9id="L149"9clas2="lin25href="+code=9md" c95id="L169" class="lineeeeeeeeeeeeeeeeeeeeeeeeebreak"drivers/scsi/scsi_lib.c#L182" id="L94si_lib.c9 *buffired"cherea>    wi9ueuen95ne" name="L160"> 160 160retries, int bufflen)descrip4" c" naefpa> *         string">"Divers not ready"urns th"drivers/scsi/scsi_lib.c#L182" id="L945
 160<0"> 160)ac4" cn efefpsi/scsi_lib.c#LACTION_FAILqueue_work)ACTION_FAILa hr"drivers/scsi/scsi_lib.c#L182" id="L9i604" cla9id="2154" 2lass="line" n9md" c95="line" name="L225"> ss="sref6" id="L206" class="line" name="L206945" id="L9  s (USB m75"-eue_agumen9parti957" class="linhref="+cccccccccbreak"drivers/scsi/scsi_lib.c#L182" id="L94" class=92togL120">.max_a8)VOLUME_OVERFLOW"lin:"sref">retries, int c9"linPrev"L166" cgarbagum9an cl95ICE_BUSY" class="srefss="srefe   This could be callla)ac4" cn efefpsi/scsi_lib.c#LACTION_FAILqueue_work)ACTION_FAILa hr"drivers/scsi/scsi_lib.c#L182" id="L9ad="L149"9ock2d26 name="L149">9149lajq9_lib.c#L160" id="L160" c9ass="96ne" name="L160"> 160retries, int  160<<<<<<<<)descrip4" c" naefpa> *         string">"Unhoselee:sense sens"urns th"drivers/scsi/scsi_lib.c#L182" id="L9acode=blk9"sref">target_blocked)ac4" cn efefpsi/scsi_lib.c#LACTION_FAILqueue_work)ACTION_FAILa hr"drivers/scsi/scsi_lib.c#L182" id="L9a5 160 6" id="L206" class="line" name="L2069a5" id="L9id="L164" class="line" n9me="L967" class="lin6celsee="sref">retries, int  96mp;&  )descrip4" c" naefpa> *         string">"Unhoselee:error>sens"urns th"drivers/scsi/scsi_lib.c#L182" id="L9a"sref">c9"> 167)ac4" cn efefpsi/scsi_lib.c#LACTION_FAILqueue_work)ACTION_FAILa hr"drivers/scsi/scsi_lib.c#L182" id="L9ref="driv9rs/scsi/scsi_lib.c#L168"9id="L978" class="lin6" id="L206" class="line" name="L2069n>
un97ne" name="L16)ac4" cn ef)c="sref">retries, int )ACTION_FAILa hr:"sref">retries, int ( 1975e" name="L160"> 160)rs/scr"le"co_bufs rsn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L9rss="line9        * Requeue this c9mmand97="line" name="L225"> (
retries, int          * that are a9ready977" class="linhref="+ccccccccc()descrip4" c" na)drivers/scsi/scsi_lib.c#L182" id="L9s6" id="L9/a> 214string">"%s\n"urns th,drivers/scsi/scsi_lib.c#L182" id="L9r"sref">c9si_lib.c#L177" id="L177"9class97ICE_BUSY" class="srefffffffffffffffffccccccccccccsi/scsi_lib.c#Lrsscrip4" cqueue_work)descrip4" c" na)"drivers/scsi/scsi_lib.c#L182" id="L979" id="L979" class="line" name="L979"> 988" class="linhref="+code=blk_ef="+code=sense#2lasprintcresulL236
)ri/scs4nyten ef=scsi_lib.c#L223resulL236

 181      9  160)rs/scprintcsensen ef=s> *         string">""urns th,pan class="commecmd="L223" class="cmLa hr)"drivers/scsi/scsi_lib.c#L182" id="L97ef="+cod9"line" name="L182"> 182<9a>   983e" name="L160"> 160<<<<<<<<)rs/scprintcPurposen ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L97d" class9f">spin_unlock_irqrestor9(984p;&  qu985e" name="L160"> 160<(
 ss="srefef="+code=sensers/scr"driuecPurposequeue_work)rs/scr"driuecPurposen ef=scsi_lib.c#L223d236
)rs/scnextePurposen ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L97"sref">c9csi_lib.c#L187" id="L1879 clas98ICE_BUSY" class="srefbreak"drivers/scsi/scsi_lib.c#L182" id="L9ers/scsi/9csi_lib.c#L188" id="L1889 clas998" class="linc"cohsi/scsi_lib.c#LACTION_REPREPqueue_work)ACTION_REPREPa hr:"sref">retries, int  * Argumen9s:   99mment"> *              commaaaaaaaaaaaaaaaaa* A:new Purpose:willab  preparee:ase:issoddi_lib.c#L201" id="L201" class="line" name="9eef="+cod9c#L191" id="L191" class=9line"993e" nnt"> *              or ::::::::::::::::*turns the req->errorblocked" 2lass="sref9elass="sr9i_lib.c#L192" id="L192" 9lass=994p;&  )rs/scr"le"co_bufs rsn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L9e" id="L19i_lib.c#L193" id="L193" 9lass=995e" name="L160"> 160)rs/scr"driuecPurposen ef=scsi_lib.c#L223d236

 break"drivers/scsi/scsi_lib.c#L182" id="L9e5" id="L9
)ACTION_RETRYa hr:"sref">retries, int c9       We do this for on9 of t99ICE_BUSY" class="srefsi/scsi_lib.c#L__rs/scdriuecinserL236
)SCSI_MLQUEUE_EH_RETRYa hr, 0 "drivers/scsi/scsi_lib.c#L182" id="L10"> *     10"> *   We do this for on10"> >10">"line" name="L225"> break"dr/pre> >rivers/scsi/scsi_lib.c#L182" id="L10"1 *     10".c#L189" id="L189" clas10".c>10"1" class="linc"cohsi/scsi_lib.c#LACTION_DELAYED_RETRYqueue_work)ACTION_DELAYED_RETRYa hr:"sref">retries, int  * Argumen10"ss>10"ne" name="L160"> 16010"3e" name="L160"> 160
)SCSI_MLQUEUE_DEVICE_BUSYa hr, 0 "drivers/scsi/scsi_lib.c#L182" id="L10"4 *     10"_lib.c#L192" id="L192" 10"_l>10"4p;&  10"5e" name="L166" id="L206" class="line" name="L20610"6 *     10"/span>
10"="lin6" id="L206" class="line" name="L20610"7 *     10"/span>
10"7d="L" id="L206" class="line" name="L20610"8 *     10""L196" class="line" nam10""L>10"mp;&astaticrint
)r"driven ef *scsi_lib.c#L223red236
10"ICE_BUSY" class="sreffffffffffffffscsi_lib.c#L223gfp_equeue_work)gfp_eCE_BUscsi_lib.c#L223gfp_mas/a>->10i_" na="sref">retries, int 10i1" class="linint)counea hr"drivers/scsi/scsi_lib.c#L182" id="L10i2 *     10/scsi_lib.c#L210" id="L210/sc>10i2d="L" id="L206" class="line" name="L2061013 *     10ib.c#L211" id="L211" cla10ib.>10i3e" name="L16l14"> 21410iine" name="L192"> 192 213>>>>>>>>*turns the req->errorblocked" 2lass="sref1016 *     10#L214" id="L214" class="10#L2>10i="line" name=(
)nr_phys_seg21310i7" class="linhref="+cccccccccccccccccccccccccsi/scsi_lib.c#Lgfp_mas/a>->retries, int  21610imp;&   210ss=>10i9e" name="L166" id="L206" class="line" name="L206102> *     10218" class="line" name="10218>1021d="L" id="L206" class="line" name="L2061021 *     10"drivers/scsi/scsi_lib.c10"dr>1021" class="linef="+code=senser"d236

 214 192 224i10e" >102="line" name="L213"> 213>>>>>>>>* each seg213 214>>>>>>>*turns the req->errorblocked" 2lass="sref1027 *     10" name="L226"> 226  10" n>1027" class="linef="+code=sensecounequeue_work)counea hr fpan class="commen>



,>1028" class="linef="+code=senseBUG_ONqueue_work)BUG_ONn ef=scsi_lib.c#L223counequeue_work)counea hr L236 ef="+code=sense db236

)n13flags,
10cla>1029" class="linef="+code=sense db236

)n1310s/" class="linef="+code=sense db236

 192 213* Func4" c:"linrs/scinit_io()urns the req->errorblocked" 2lass="sref1036 *     10_lib.c#L234" id="L234" c10_li>10sme="L214"> 214req10s5 * Purpose:"lin SCSI I/O initialize func4" ci_lib.c#L201" id="L201" class="line" name="1038 *     10len" class="sref">buffle10len>10sclass="comment"> * @timeout:aurns the req->errorblocked" 2lass="sref1039 *     10si/scsi_lib.c#L238" id="10si/>10s cases.  Either the host is * Argu21310 * @timeout:aurns the req->errorblocked" 2lass="sref1041 *     10class="sref">__GFP_WAIT<10cla>10<1cases.  Either the host is * Rrite *              comma*;  me10=me>10<3e" nnt"> *              or *;   192)rs/sccmsen ef *scsi_lib.c#L223cmd="L223" class="cmLa hr, ef="+code=sensegfp_equeue_work)gfp_eCE_BUscsi_lib.c#L223gfp_mas/a>->10<6" na="sref">retries, int {
10<7" class="linstruct)r"driven ef *scsi_lib.c#L223rd236
)r"driven ef"drivers/scsi/scsi_lib.c#L182" id="L1048 *     10f=REQ_TYPE_BLOCK_PC 8410<8d="L" id="L206" class="line" name="L2061049 *     10{
10<9" class="linint


10hr"line" name=()err_exien ef"drivers/scsi/scsi_lib.c#L182" id="L1052 *     10 *buffired"cherea>    wi10 *b>10h2d="L" id="L206" class="line" name="L2061053 *     10_li2.c#L121" id="L151" c10_li>10h3"line" name=(retries, int bufflen10h4p;&  

retries, int  160
10h="line" name="L225"> (
retries, int 10h7" class="linhref="+cccccccccef="+code=senseerror="L223" class="errora hrefpef="+code=senseBLKPREP_DEFERa>->.max_a810hmp;&  )err_exien ef"drivers/scsi/scsi_lib.c#L182" id="L1059 *     10"linPrev"L166" cgarbagum10"li>10hICE_BUSY" class="sref6" id="L206" class="line" name="L206106> *     10L16sclarity * Nks by zer10L16>10L1d="L" id="L206" class="line" name="L2061061 *     10ock2d26 name="L149">10ock>10Lid="L169" class="lineecsi_lib.c#L223rd236


10Lne" name="L160"> 160



10L3e" name="L160"> 160<(target_blocked10L4p;&  )err_exien ef"drivers/scsi/scsi_lib.c#L182" id="L1065 *     10ode=max_target_blocked" 10ode>10L5e" name="L166" id="L206" class="line" name="L2061066 *     10scsi_lib.c#L163" id="L1610scs>10L6d="L" id="L206" class="line" name="L2061067 *     10id="L164" class="line" n10id=>10L7" class="lin(retries, int 10Lmp;&  


 167 >10LICE_BUSY" class="srefint)/sccsa hr,)counea hr"drivers/scsi/scsi_lib.c#L182" id="L107> *     10rs/scsi/scsi_lib.c#L168"10rs/>10rsd="L" id="L206" class="line" name="L2061071 *     10="drivers/scsi/scsi_lib.10="d>10rid="L169" class="lineecsi_lib.c#L223BUG_ONqueue_work)BUG_ONn ef=scsi_lib.c#L223prot_ db236
10rne" name="L160"> 160)/sccsa hr fpan class="commen>


10r3d="L" id="L206" class="line" name="L2061074 *     10/a>(->retries, int 10r5e" name="L160"> 160-> ss="srefgoto ef="+code=senseerr_exiequeue_work)err_exien ef"drivers/scsi/scsi_lib.c#L182" id="L1077 *     10t">         * that are a10t">>10r7" class="linhref="+c6" id="L206" class="line" name="L2061078 *     10/a>>10r8d="L" id="L206" class="line" name="L2061079 *     10si_lib.c#L177" id="L177"10si_>10rICE_BUSY" class="srefsi/scsi_lib.c#Lcounequeue_work)counea hr fpan class="commen>


1079"line" name="L225"> ss="srefame="L160"> 160


107id="L169" class="lineecsi_lib.c#L223BUG_ONqueue_work)BUG_ONn ef=scsi_lib.c#L223unlikelyqueue_work)unlikelyn ef=scsi_lib.c#L223counequeue_work)counea hr L236 ef="+code=sense/sccsqueue_work)/sccsa hr) "drivers/scsi/scsi_lib.c#L182" id="L1082 *     10me="L181"> 181      10me=>107ne" name="L160"> 160)BUG_ONn ef=scsi_lib.c#L223unlikelyqueue_work)unlikelyn ef=scsi_lib.c#L223counequeue_work)counea hr L236 ef="+code=sensedriuecmax_integrity_seg213)driuecmax_integrity_seg213

 182<10"li>1073d="L" id="L206" class="line" name="L2061084 *     10f">spin_unlock_irqrestor10f">>1074p;&  
 160

)n131077d="L" id="L206" class="line" name="L2061088 *     10href="drivers/scsi/scsi_10hre>107mp;&  ->retries, int 10c1" class="linef="+code=sense )rs/scr"le"co_bufs rsn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L10c2 *     10ass="comment"> * Argumen10ass>10c2" class="linef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" r"drivequeue_work)r"driven ef"L236" class="line"  pecial236
10c3" class="linef="+code=sense )rs/scputePurposen ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L10c4 *     10i_lib.c#L192" id="L192" 10i_l>10c4p;&  10c5e" n6" id="L206" class="line" name="L2061096 *     10
10c7d="L" id="L206" class="line" name="L2061098 *     10="L196" class="line" nam10="L>10cmp;&astaticrstruct)rs/sccmsen ef *scsi_lib.c#L223rs/scgetePmL_from_red236


)r"driven ef *scsi_lib.c#L223red236
 *     11"> *   We do this for on11"> >110_" na="sref">retries, int 11"1" class="linstruct)rs/sccmsen ef *scsi_lib.c#L223cmd="L223" class="cmLa hr"drivers/scsi/scsi_lib.c#L182" id="L11"2 *     11"ss="comment"> * Argumen11"ss>1102d="L" id="L206" class="line" name="L20611"3 *     11"#L191" id="L191" class=11"#L>1103"line" name=(

retries, int 11"4p;&  )rs/scgetePurposen ef=scsi_lib.c#L223rdiv236
1105e" name="L160"> 160<(
110="line" name="L225"> ss="srefwrite
1107" class="linhref="+cscsi_lib.c#L223red236

110mp;&  retries, int 11"ICE_BUSY" class="srefscsi_lib.c#L223cmd="L223" class="cmLa hrefpef="+code=sensered236

1118" class="lin6" id="L206" class="line" name="L2061111 *     11class="line" name="L209"11cla>111id="L" id="L206" class="line" name="L20611i2 *     11/scsi_lib.c#L210" id="L211/sc>1112" class="line14"> 2141113" class="linef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" tag236

1114" class="linef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" r"drivequeue_work)r"driven ef fpef="+code=sensered236
)cmsen ef fpef="+code=sensered236
1117" class="linef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" prot_op236
 2161118d="L" id="L206" class="line" name="L20611i9 *     11ss="line" name="L217"> 211ss=>11i9e" name="L16write112id="L" id="L206" class="line" name="L2061122 *     11L220" id="L220" class="l11L22>1122d="Lint
)rs/scsritp_n>


)r"driven ef *scsi_lib.c#L223red236
retries, int )rs/sccmsen ef *scsi_lib.c#L223cmd="L223" class="cmLa hr"drivers/scsi/scsi_lib.c#L182" id="L1125 *     11e" name="L224"> 224i11e" >1125e" name="L16int
->
 226  11" n>1127" class="lin(,>112mp;&  flags,
11cla>1129d="L" id="L206" class="line" name="L206113> *     11s/scsi/scsi_lib.c#L228" 11s/s>11s/" class="linef="+code=sensecmd="L223" class="cmLa hrefpef="+code=sensers/scgetePmL_from_red236

)unlikelyn ef=!scsi_lib.c#L223cmd="L223" class="cmLa hr  drivers/scsi/scsi_lib.c#L182" id="L1132 *     11=DMA_TO_DEVICE" class="s11=DM>113ne" name="L160"> 160-> 192 213>>>>>>>>* BLOCK_PC ="drives may transfer data,ainewhichnc"coht: y muven ns the req->errorblocked" 2lass="sref1136 *     11_lib.c#L234" id="L234" c11_li>11sme="L214"> 214>>>>>>>* a bio attached to t: m.  Orht: y might containea SCSI Purposen ns the req->errorblocked" 2lass="sref1137 *     11=req" class="sref">req11s5 >>>>>>>>* that does not transfer data,ainewhichnc"coht: y may op4" callyn ns the req->errorblocked" 2lass="sref1138 *     11len" class="sref">buffle11len>11sclass="comment"> * @timeout:>>>>>>>>* submitea ="drive withoutoommattached bioi_lib.c#L201" id="L201" class="line" name="1139 *     11si/scsi_lib.c#L238" id="11si/>11s cases.  Either the host is >>>>>>>>*turns the req->errorblocked" 2lass="sref114> *     11, 

retries, int __GFP_WAIT<11cla>114id="L169" class="lineint
me11=me>1143e" name="L160"> 160)BUG_ONn ef=!scsi_lib.c#L223red236
)nr_phys_seg213 160


114="line" name="L225"> (
{
1147" class="linhref="+cccccccccwrite
retries, int 115sd="L" id="L206" class="line" name="L2061151 *     11clas2="lin25href="+code=11cla>11hid="L169" class="linescsi_lib.c#L223memsri236


    wi11 *b>115ne" name="L160"> 160

11h3"line" name=6" id="L206" class="line" name="L2061154 *     11csi/scsi_ref">bufflen115ine" drivers/scsi/scsi_lib.c#L182" id="L1155 *     11        <        *211h5e" name="L16ef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" cmd_lecqueue_work)cmd_lecn ef fpef="+code=sensered236
)cmd_lecn ef"drivers/scsi/scsi_lib.c#L182" id="L1156 *     11id="2154" 2lass="line" n11id=>115="line" name=(
)n>

11h7" class="linhref="+cscsi_lib.c#L223cmd="L223" class="cmLa hr"L236" class="line"  ccdata_direc4" c236
.max_a811hmp;&  11hICE_BUSY" class="srefscsi_lib.c#L223cmd="L223" class="cmLa hr"L236" class="line"  ccdata_direc4" c236
11ock>11Lid="L169" class="lineecsi_lib.c#L223cmd="L223" class="cmLa hr"L236" class="line"  ccdata_direc4" c236
11Lne" name="L16drivers/scsi/scsi_lib.c#L182" id="L1163 *     11               
target_blocked11L4p;&  
)reeriesn ef"drivers/scsi/scsi_lib.c#L182" id="L1165 *     11ode=max_target_blocked" 11ode>11L5e" name="L16write->11L7" clsi/scsi_lib.c#LEXPORT_SYMBOL="L223" class="EXPORT_SYMBOLn ef=scsi_lib.c#L223rs/scsritp_n>
)rs/scsritp_n>
1168d="L" id="L206" class="line" name="L2061169 *     11"> 167 >116 cases.  Either the host islaurns the req->errorblocked" 2lass="sref117> *     11rs/scsi/scsi_lib.c#L168"11rs/>117/lass="comment"> * @timeout:a Sritp a REQ_TYPE_FS Purpose.  Theseeare:simpl  ="ad/writ  ="driveurns the req->errorblocked" 2lass="sref1171 *     11="drivers/scsi/scsi_lib.11="d>1171cases.  Either the host is * from:filesystems that stillaneed to be translated to SCSI CDBs fromurns the req->errorblocked" 2lass="sref1172 *     11"+code=unbusy" class="sr11"+c>117mment"> *              comma*;t:  ULDi_lib.c#L201" id="L201" class="line" name="1173 *     11L171" class="line" name=11L17>1173e" nnt"> *              or *turns the req->errorblocked" 2lass="sref1174 *     11/a>()rs/scsritp_fsccmsen ef=struct

)r"driven ef *scsi_lib.c#L223red236
11r5e" n="sref">retries, int )rs/sccmsen ef *scsi_lib.c#L223cmd="L223" class="cmLa hr"drivers/scsi/scsi_lib.c#L182" id="L1177 *     11t">         * that are a11t">>11r7" class="linint
->
>11r8d="L" id="L206" class="line" name="L2061179 *     11si_lib.c#L177" id="L177"11si_>11rICE_BUSY" cla(1179"line" name="L225"> write
118id="L" id="L206" class="line" name="L2061182 *     11me="L181"> 181      11me=>117ne" name="L16(


 182<11"li>1183e" name="L160"> 160<<<<<<<<<



retries, int spin_unlock_irqrestor11f">>1174p;&  





 160<( ss="srefwrite
1187" class="lin6" id="L206" class="line" name="L2061188 *     11href="drivers/scsi/scsi_11hre>1188d="L" id="L206" class="line" name="L2061189 *     11csi_lib.c#L187" id="L18711csi>1189" class="line.  Either the host islaurns the req->errorblocked" 2lass="sref119> *     11csi_lib.c#L188" id="L18811csi>119/lass="comment"> * @timeout:::::::::* Filesystem ="drives must transfer datai_lib.c#L201" id="L201" class="line" name="1191 *     11b.c#L189" id="L189" clas11b.c>1191cases.  Either the host is ::::::::*turns the req->errorblocked" 2lass="sref11c2 *     11ass="comment"> * Argumen11ass>11c2" class="linef="+code=senseBUG_ONqueue_work)BUG_ONn ef=!scsi_lib.c#L223red236
)nr_phys_seg2131193d="L" id="L206" class="line" name="L20611c4 *     11i_lib.c#L192" id="L192" 11i_l>1194p;&  

1195e" name="L16i119="line" name="L225"> write->11c7d="L" id="L206" class="line" name="L2061198 *     11="L196" class="line" nam11="L>1198" class="linef="+code=sensememsri236
)cmsen ef,<0,:si/scsi_lib.c#LBLK_MAX_CDBa>->
 *     12"> *   We do this for on12"> >1201d="L6" id="L206" class="line" name="L20612"1 *     12".c#L189" id="L189" clas12".c>12"1" clsi/scsi_lib.c#LEXPORT_SYMBOL="L223" class="EXPORT_SYMBOLn ef=scsi_lib.c#L223rs/scsritp_fsccmsequeue_work)rs/scsritp_fsccmsen ef)"drivers/scsi/scsi_lib.c#L182" id="L12"2 *     12"ss="comment"> * Argumen12"ss>1202d="L" id="L206" class="line" name="L20612"3 *     12"#L191" id="L191" class=12"#L>1203"linint->

)r"driven ef *scsi_lib.c#L223red236
12"4p;&a="sref">retries, int 1205e" name="L16int
->
1206d="L" id="L206" class="line" name="L20612"7 *     12"/span>
1207" class="line.  Either the host islaurns the req->errorblocked" 2lass="sref12"8 *     12""L196" class="line" nam12""L>120class="comment"> * @timeout:>>>>>>>>* If t:  divers rivnot in running state we will6wrject120 cases.  Either the host is >>>>>>>>* or all6Purposesi_lib.c#L201" id="L201" class="line" name="121> *     12i_lib.c#L208" id="L208" 12i_l>121/lass="comment"> * @timeout:::::::::*turns the req->errorblocked" 2lass="sref1211 *     12class="line" name="L209"12cla>1211" class="lin(

retries, int  160
retries, int 1213e" name="L160"> 160
retries, int 1214p;&  retries, int  160 214>>>>>>>>>>>>>>>>>>>>>>>* If t:  divers rivoffL214 we -&gucohto process anyn ns the req->errorblocked" 2lass="sref1217 *     1215" class="line" name="L1215">1215 >>>>>>>>>>>>>>>>>>>>>>>>* Purposesi  The divers must be brought onlinen ns the req->errorblocked" 2lass="sref1218 *     12line" name="L216"> 216121class="comment"> * @timeout:>>>>>>>>>>>>>>>>>>>>>>>>* before trying any -&coorby6Purposesi_lib.c#L201" id="L201" class="line" name="1219 *     12ss="line" name="L217"> 212ss=>121 cases.  Either the host is >>>>>>>>>>>>>>>>>>>>>>>>*turns the req->errorblocked" 2lass="sref122> *     12218" class="line" name="12218>1229"line" name="L225"> ss="sref" class="line"  div_print/a>->->122id="L169" class="lineame="L225"> ss="sref".  Either thstring">"wrjecting I/Ohto offL214 divers\n"urns th)"drivers/scsi/scsi_lib.c#L182" id="L1222 *     12L220" id="L220" class="l12L22>122ne" name="L160"> 160
 160<<<<<<<<retries, int  224i12e" >1225e" name="L160"> 160 214>>>>>>>>>>>>>>>>>>>>>>>* If t:  divers rivfully dileted, we -&gucohtourns the req->errorblocked" 2lass="sref1227 *     12" name="L226"> 226  12" n>1225 >>>>>>>>>>>>>>>>>>>>>>>>* process any6Purposes as welli_lib.c#L201" id="L201" class="line" name="1228 *     12a>, int  * @timeout:>>>>>>>>>>>>>>>>>>>>>>>>*turns the req->errorblocked" 2lass="sref1229 *     12class="sref">flags,
12cla>122ICE_BUSY" class="srefeeeeeeeee class="line"  div_print/a>->->1239"line" name="L225"> ss="srefame="L160"> ".  Either thstring">"wrjecting I/Ohto dead divers\n"urns th)"drivers/scsi/scsi_lib.c#L182" id="L1231 *     12ers/scsi/scsi_lib.c#L23012ers>123id="L169" class="lineame="L22" class="line" wri236
 160<<<<<<<< 160
retries, int retries, int  160
retries, int 123="line" name="L225"> ss="srefe.  Either the host islaurns the req->errorblocked" 2lass="sref1237 *     12=req" class="sref">req12s5 >>>>>>>>>>>>>>>>>>>>>>>>* If t:  diverss rivblocked we defer normal6Purposesi_lib.c#L201" id="L201" class="line" name="1238 *     12len" class="sref">buffle12len>12sclass="comment"> * @timeout:>>>>>>>>>>>>>>>>>>>>>>>>*turns the req->errorblocked" 2lass="sref1239 *     12si/scsi_lib.c#L238" id="12si/>123ICE_BUSY" class="srefeeeeeeee(
)PmL_flagse" nalassPhef="+code=senseREQ_PREEMPTqueue_work)REQ_PREEMPTa hr  drivers/scsi/scsi_lib.c#L182" id="L124> *     12,  ss="srefame="L16" class="line" wri236
->__GFP_WAIT<12cla>124id="L169" class="lineeeeeeeeebreak"drivers/scsi/scsi_lib.c#L182" id="L1242 *     12L241" id="L241" class="l12L24>124ne" name="L160"> 160retries, int me12=me>1243e" name="L160"> 160 >>>>>>>>>>>>>>>>>>>>>>>>* For any6ot: rvnot fully online state we only al rwurns the req->errorblocked" 2lass="sref1245 *     12lk_unprep_requebuffmcpyd12lk_>124="line" name="L213"> 213>>>>>>>>>>>>>>>>>>>>>>>>* rpecial Purposesi  In particular any6ucor initiatedurns the req->errorblocked" 2lass="sref1246 *     12 nam 108{
 214>>>>>>>>>>>>>>>>>>>>>>>* Purpose rivnot al rwedi_lib.c#L201" id="L201" class="line" name="1247 *     12="dr 108{
1245 >>>>>>>>>>>>>>>>>>>>>>>>*turns the req->errorblocked" 2lass="sref1248 *     12f=REQ_TYPE_BLOCK_PC 84124mp;&  
)PmL_flagse" nalassPhef="+code=senseREQ_PREEMPTqueue_work)REQ_PREEMPTa hr  drivers/scsi/scsi_lib.c#L182" id="L1249 *     12{
124ICE_BUSY" class="srefffffffffffffffff" class="line" wri236
1259"line" name="L225"> ss="srefbreak"drivers/scsi/scsi_lib.c#L182" id="L1251 *     12clas2="lin25href="+code=12cla>12hid="L169" class="line6" id="L206" class="line" name="L2061252 *     12 *buffired"cherea>    wi12 *b>125ne" name="L166" id="L206" class="line" name="L2061253 *     12_li2.c#L121" id="L151" c12_li>12h3"line" name=write
bufflen125ine" 6" id="L206" class="line" name="L2061255 *     12        <        *212h5e" nsi/scsi_lib.c#LEXPORT_SYMBOL="L223" class="EXPORT_SYMBOLn ef=scsi_lib.c#L223rs/scprep_state_chec/a>->1256d="L" id="L206" class="line" name="L2061257 *     12  s (USB m75"-eue_agumen12  s>12h7" clint->)r"drive_driuen ef *scsi_lib.c#L223d236
)r"driven ef *scsi_lib.c#L223red236
.max_a812hmp;&a="sref">retries, int 12hICE_BUSY" clastruct


12ock>12Lid="L169" claswitcha ef="+code=sensewri236
retries, int 12Lne" name="L16c"cohef="+code=senseBLKPREP_KILL="L223" class="BLKPREP_KILLa hr:"sref">retries, int 1263e" name="L160"> 160
)errorsn ef fpef="+code=senseDID_NO_CONNECTqueue_work)DID_NO_CONNECTe" nallt;llt; 16"drivers/scsi/scsi_lib.c#L182" id="L1264 *     12"sref">target_blocked1264p;&   214*turns the req->errorblocked" 2lass="sref1265 *     12ode=max_target_blocked" 12ode>1265e" name="L160"> 160<(
retries, int  ss="srefstruct)rs/sccmsen ef *scsi_lib.c#L223cmd="L223" class="cmLa hrefpef="+code=sensered236

1267" class="linhref="+cccccccccef="+code=sensers/scr"le"co_bufs rsqueue_work)rs/scr"le"co_bufs rsn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L1268 *     1266" class="line" name="L1266">126mp;&  )rs/scputePurposen ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L1269 *     12"> 167 >126ICE_BUSY" class="srefeeeeeeeee class="line" red236

1279"line" name="L225"> 6" id="L206" class="line" name="L2061271 *     12="drivers/scsi/scsi_lib.12="d>127id="L169" class="linebreak"drivers/scsi/scsi_lib.c#L182" id="L1272 *     12"+code=unbusy" class="sr12"+c>127ne" name="L16c"cohef="+code=senseBLKPREP_DEFERa>->retries, int 1273e" name="L160"> 160( >>>>>>>>>>>>>>>>* If we defer, t:  n>
127="line" name="L213"> 213>>>>>>>>>>>>>>>>* driue must be rivearted, so we schedule a6c"llbackhto happecn ns the req->errorblocked" 2lass="sref1276 *     12        * Requeue this c12   >127me="L214"> 214>>>>>>>>>>>>>>>* shortlyi_lib.c#L201" id="L201" class="line" name="1277 *     12t">         * that are a12t">>1275 >>>>>>>>>>>>>>>>*turns the req->errorblocked" 2lass="sref1278 *     12/a>>127mp;&  
)divers_busya hr f= 0 drivers/scsi/scsi_lib.c#L182" id="L1279 *     12si_lib.c#L177" id="L177"12si_>127ICE_BUSY" class="srefeeeeeeeee class="line" n>
)n>

1279"line" name="L225"> break"drivers/scsi/scsi_lib.c#L182" id="L1281 *     12id="L180" class="line" n12id=>128id="L169" cladefault:"sref">retries, int  181      12me=>128ne" name="L160"> 160
)PmL_flagse" na|fpan class="commeREQ_DONTPREPqueue_work)REQ_DONTPREP/scs"drivers/scsi/scsi_lib.c#L182" id="L1283 *     12"line" name="L182"> 182<12"li>1283"line" name=6" id="L206" class="line" name="L2061284 *     12f">spin_unlock_irqrestor12f">>128ine" drivers/scsi/scsi_lib.c#L182" id="L1285 *     12de=queue_lock" class="sr12de=>1285e" name="L16write
1287" clsi/scsi_lib.c#LEXPORT_SYMBOL="L223" class="EXPORT_SYMBOLn ef=scsi_lib.c#L223rs/scprep_write->1288d="L" id="L206" class="line" name="L2061289 *     12csi_lib.c#L187" id="L18712csi>1289" clint
)r"drive_driuen ef *scsi_lib.c#L223d236
)r"driven ef *scsi_lib.c#L223red236
retries, int 129id="L169" clastruct


 * Argumen12ass>12c2" class="linint
1293d="L" id="L206" class="line" name="L20612c4 *     12i_lib.c#L192" id="L192" 12i_l>1294p;&  
1295e" name="L160"> 160

)rs/scsritp_n>

129="line" name=write->
12c7d="L6" id="L206" class="line" name="L2061298 *     12="L196" class="line" nam12="L>1298" clsi/scsi_lib.c#LEXPORT_SYMBOL="L223" class="EXPORT_SYMBOLn ef=scsi_lib.c#L223rs/scprep_fc236
 *     13"> *   We do this for on13"> >130/lass="comment"> * @timeoutlaurns the req->errorblocked" 2lass="sref13"1 *     13".c#L189" id="L189" clas13".c>1301cases.  Either the host is * rs/scdiv_driue_="ady: ( * Argumen13"ss>130mment"> *              comma*;write1303e" nnt"> *              or *_lib.c#L201" id="L201" class="line" name="13"4 *     13"_lib.c#L192" id="L192" 13"_l>130ine"  * Called with t:  driue_lock heldi_lib.c#L201" id="L201" class="line" name="13"5 *     13"_lib.c#L193" id="L193" 13"_l>130="line" name="L213"> 213*turns the req->errorblocked" 2lass="sref13"6 *     13"/span>
1306d="Lstatic6ef="+code=senseinhref="6

)r"drive_driuen ef *scsi_lib.c#L223d236

1307" class="linhref="+cccccccccccccccccccstruct

130mp;&a="sref">retries, int 130ICE_BUSY" cla()divers_busya hr f= 0
)divers_blockeda hr c="sref">retries, int 1319"line" name="L225"> ="comment"> * @timeoutlaurns the req->errorblocked" 2lass="sref1311 *     13class="line" name="L209"13cla>1311cases.  Either the host is ::::::::::::::::* unblock after divers_blocked iterates to zerourns the req->errorblocked" 2lass="sref13i2 *     13/scsi_lib.c#L210" id="L213/sc>131mment"> *              comma::::::::::::::::*turns the req->errorblocked" 2lass="sref13i3 *     13ib.c#L211" id="L211" cla13ib.>1313e" name="L160"> 160<()divers_blockeda hr f= 0 c="sref">retries, int 1314p;&   160
 160 160->-> ss="sref"+c0"> 160"unblocking divers at zero dipth\n"urns th) "drivers/scsi/scsi_lib.c#L182" id="L1317 *     1315" class="line" name="L1315">1317" class="linhref="+c6celsee="sref">retries, int  216131mp;&  
)n>

 213ss=>131ICE_BUSY" class="srefeeeeeeeewrite 6" id="L206" class="line" name="L2061321 *     13"drivers/scsi/scsi_lib.c13"dr>132id="L169" cla6" id="L206" class="line" name="L2061322 *     13L220" id="L220" class="l13L22>132ne" name="L16( 160 224i13e" >1325e" name="L16write 226  13" n>1327d="L" id="L206" class="line" name="L2061328 *     13a>, int flags,
13cla>132 cases.  Either the host islaurns the req->errorblocked" 2lass="sref133> *     13s/scsi/scsi_lib.c#L228" 13s/s>133/lass="comment"> * @timeout:a  2lastargetedriue_="ady: chec/s6( *              comma*_lib.c#L201" id="L201" class="line" name="1333 *     13231" id="L231" class="li13231>1333e" nnt"> *              or * Called with t:  host lock heldi_lib.c#L201" id="L201" class="line" name="1334 *     13get_request" class="sref13get>133ine"  *turns the req->errorblocked" 2lass="sref1335 *     13equest_queue, 1335e" nstatic6ef="+code=senseinhref="6
)rs/sctargetedriue_="adyn ef=struct)Ss/scHoven ef *scsi_lib.c#L223rhovequeue_work)rhoven ef," id="L206" class="line" name="L2061336 *     13_lib.c#L234" id="L234" c13_li>133="line" name="L225"> ss="sreffffffffffffffffffffstruct

req13s5="sref">retries, int buffle13len>133mp;&  )rs/sctargetn ef=scsi_lib.c#L223rdiv236
1349"line" name=(
retries, int __GFP_WAIT<13cla>134id="L169" class="line()rtargetesdiv_ucord="L1lassPlassP"sref">retries, int  160<<<<)rtargetn ef"L236" class="line"  targetesdiv_ucorqueue_work)rtargetesdiv_ucord="L1!fpef="+code=senserdiv236
me13=me>1343e" name="L160"> 160)rtargetesdiv_ucord="L1fpef="+code=senserdiv236
1346d="L" id="L206" class="line" name="L2061347 *     13="dr 108{
1347"line" name=()targetebusya hr f= 0)rtargetn ef"L236" class="line" targeteblockedqueue_work)targeteblockeda hr c="sref">retries, int 135/lass="comment"> * @timeout:::::::::>>>>>>>>*turns the req->errorblocked" 2lass="sref1351 *     13clas2="lin25href="+code=13cla>13hid="L169" class="line()targeteblockeda hr f= 0 c="sref">retries, int     wi13 *b>135ne" name="L160"> 160
->->1353e" name="L160"> 160<<<<<<<<<"unblocking target at zero dipth\n"urns th) "drivers/scsi/scsi_lib.c#L182" id="L1354 *     13csi/scsi_ref">bufflen1354p;&   1601356e" name="L166" id="L206" class="line" name="L2061357 *     13  s (USB m75"-eue_agumen13  s>1357d="L" id="L206" class="line" name="L2061358 *     132togL120">.max_a81358"line" name=(retries, int 135ICE_BUSY" class="srefscsi_lib.c#L223list_movectail236

)rtarved_meory" na,6lassPef="+code=sense hovequeue_work)rhoven ef"L236" class="line" rtarved_listqueue_work)rtarved_listn ef "drivers/scsi/scsi_lib.c#L182" id="L136> *     13L16sclarity * Nks by zer13L16>1369"line" name="L225"> write13ock>136id="L169" cla6" id="L206" class="line" name="L2061362 *     13_lib.c#L160" id="L160" c13_li>1362d="L" id="L206" class="line" name="L2061363 *     13               target_blocked136ine" 6" id="L206" class="line" name="L2061365 *     13ode=max_target_blocked" 13ode>1365e" n" id="L206" class="line" name="L2061366 *     13scsi_lib.c#L163" id="L1613scs>136me="L214"> 2141365 a  2lashove_driue_="ady: (136class="comment"> * @timeout:*;write 167 >136 cases.  Either the host is *;write137/lass="comment"> * @timeout:a_lib.c#L201" id="L201" class="line" name="1371 *     13="drivers/scsi/scsi_lib.13="d>1371cases.  Either the host is * Called with hove_lock heldi_lib.c#L201" id="L201" class="line" name="1372 *     13"+code=unbusy" class="sr13"+c>137mment"> *              comma*turns the req->errorblocked" 2lass="sref1373 *     13L171" class="line" name=13L17>1373e" nstatic6ef="+code=senseinhref="6
)rs/schove_driue_="adyn ef=struct)r"drive_driuen ef *scsi_lib.c#L223d236
>1374p;&   160<<<<<<<<<<<)Ss/scHoven ef *scsi_lib.c#L223rhovequeue_work)rhoven ef," id="L206" class="line" name="L2061375 *     133" class="line" name="L1133" >1375e" name="L160"> 160 160

retries, int          * that are a13t">>1377"line" name=(>137mp;&  137ICE_BUSY" cla()hove_busya hr f= 0)rhoven ef"L236" class="line" hove_blockedqueue_work)hove_blockeda hr c="sref">retries, int 1379"line" name="L225"> 214"> 2141381cases.  Either the host is ::::::::::::::::* unblock after hove_blocked iterates to zerourns the req->errorblocked" 2lass="sref1382 *     13me="L181"> 181      13me=>138mment"> *              comma::::::::::::::::*turns the req->errorblocked" 2lass="sref1383 *     13"line" name="L182"> 182<13"li>1383e" name="L160"> 160<()hove_blockeda hr f= 0 c="sref">retries, int spin_unlock_irqrestor13f">>1384p;&   160
 160 1ef="+code=senseprint/a>->" 2la%d unblocking host at zero dipth\n"urns th,e req->errorblocked" 2lass="sref1386 *     13csi_lib.c#L183" id="L18313csi>138="line" name="L225"> ss="srefffffffffffffffffef="+code=sense hovequeue_work)rhoven ef"L236" class="line" hove_noqueue_work)hove_non ef  "drivers/scsi/scsi_lib.c#L182" id="L1387 *     13href="drivers/scsi/scsi_13hre>1387" class="linhref="+c6celsee="sref">retries, int 138mp;&  139id="L169" cla(retries, int  * Argumen13ass>139ne" name="L160"> 160<(
)rtarved_meory" na  drivers/scsi/scsi_lib.c#L182" id="L1393 *     13c#L191" id="L191" class=13c#L>1393e" name="L160"> 160

)rtarved_meory" na,6lassPef="+code=sense hovequeue_work)rhoven ef"L236" class="line" rtarved_listqueue_work)rtarved_listn ef "drivers/scsi/scsi_lib.c#L182" id="L1394 *     13i_lib.c#L192" id="L192" 13i_l>1394p;&  1395e" name="L166" id="L206" class="line" name="L2061396 *     13
1397" class="line14"> 214
)rtarved_meory" na  drivers/scsi/scsi_lib.c#L182" id="L1399 *     13       We do this for on13   >139ICE_BUSY" class="srefscsi_lib.c#L223list_del_initqueue_work)list_del_initn ef=lassPef="+code=sense div236
)rtarved_meory" na "drivers/scsi/scsi_lib.c#L182" id="L14"> *     14"> *   We do this for on14"> >140sd="L" id="L206" class="line" name="L20614"1 *     14".c#L189" id="L189" clas14".c>140id="L169" clawrite * Argumen14"ss>140mment6" id="L206" class="line" name="L20614"3 *     14"#L191" id="L191" class=14"#L>1403d="L" id="L206" class="line" name="L20614"4 *     14"_lib.c#L192" id="L192" 14"_l>140ine" laurns the req->errorblocked" 2lass="sref14"5 *     14"_lib.c#L193" id="L193" 14"_l>140="line" name="L213"> 213* Busy state exporting function for ="drive stacking drrorbli_lib.c#L201" id="L201" class="line" name="14"6 *     14"/span>
140me="L214"> 214
1405 a For efficiency, no lock is taken to chec/ t:  nusy state ofurns the req->errorblocked" 2lass="sref14"8 *     14""L196" class="line" nam14""L>140class="comment"> * @timeout:*;rhove/rtarget/rdiv,=sinco t:  write140 cases.  Either the host is *;may be changee ofter ="drive stacking drrorbl6c"ll t:  function,urns the req->errorblocked" 2lass="sref141> *     14i_lib.c#L208" id="L208" 14i_l>141/lass="comment"> * @timeout:a regardless of taking lock or noti_lib.c#L201" id="L201" class="line" name="1411 *     14class="line" name="L209"14cla>1411cases.  Either the host is aurns the req->errorblocked" 2lass="sref14i2 *     14/scsi_lib.c#L210" id="L214/sc>141mment"> *              commaa When  2la can't di> *tchaI/Os anymore ose neees to kill6I/Os  2laurns the req->errorblocked" 2lass="sref14i3 *     14ib.c#L211" id="L211" cla14ib.>1413e" nnt"> *              or * neees to write141ine"  * may hold ="drives foreorbi_lib.c#L201" id="L201" class="line" name="1415 *     14scsi_lib.c#L213" id="L2114scs>141="line" name="L213"> 213*turns the req->errorblocked" 2lass="sref1416 *     14#L214" id="L214" class="14#L2>1416d="Lstatic6int)rs/sclld_busyn ef=struct)r"drive_driuen ef *scsi_lib.c#L223d236
1415="sref">retries, int  216141mp;&  

 214ss=>141ICE_BUSY" clastruct)Ss/scHoven ef *scsi_lib.c#L223rhovequeue_work)rhoven ef"drivers/scsi/scsi_lib.c#L182" id="L142> *     14218" class="line" name="14218>142sd="L" id="L206" class="line" name="L2061421 *     14"drivers/scsi/scsi_lib.c14"dr>142id="L169" cla( 160
)hoven ef"drivers/scsi/scsi_lib.c#L182" id="L1425 *     14e" name="L224"> 224i14e" >1425e" n" id="L206" class="line" name="L2061426 *     14scsi_lib.c#L225" id="L2214scs>142="line" name=laurns the req->errorblocked" 2lass="sref1427 *     14" name="L226"> 226  14" n>1425 >>>>>>>>* Ignore hove/rtarget nusy statei_lib.c#L201" id="L201" class="line" name="1428 *     14a>, int  * @timeout:>>>>>>>>* Sinco block layer doeivnot have a6concopt of faieflags,
14cla>142 cases.  Either the host is:>>>>>>>>* multipl  driues,6congiveion of hove/rtarget neees to be handleeurns the req->errorblocked" 2lass="sref143> *     14s/scsi/scsi_lib.c#L228" 14s/s>143/lass="comment"> * @timeout:>>>>>>>>* in SCSI layeri_lib.c#L201" id="L201" class="line" name="1431 *     14ers/scsi/scsi_lib.c#L23014ers>1431cases.  Either the host is >>>>>>>>*turns the req->errorblocked" 2lass="sref1432 *     14=DMA_TO_DEVICE" class="s14=DM>143ne" name="L16()rs/scdivers_is_busyn ef=scsi_lib.c#L223rdiv236
 160143="lin6" id="L206" class="line" name="L2061437 *     14=req" class="sref">req1437d="L" id="L206" class="line" name="L2061438 *     14len" class="sref">buffle14len>143class="comment"> * @timeoutlaurns the req->errorblocked" 2lass="sref1439 *     14si/scsi_lib.c#L238" id="14si/>143 cases.  Either the host is *;Kill6a ="drive for a dead diversn ns the req->errorblocked" 2lass="sref144> *     14,  * @timeout:aturns the req->errorblocked" 2lass="sref1441 *     14class="sref">__GFP_WAIT<14cla>144id="Lstatic6void)rs/sckill_r"driven ef=struct)r"driven ef *scsi_lib.c#L223red236
)r"drive_driuen ef *scsi_lib.c#L223d236
retries, int me14=me>1443e" name="L16struct)rs/sccmsen ef *scsi_lib.c#L223cmd="L223" class="cmLa hrefpef="+code=sensered236



)rs/sctargetn ef *scsi_lib.c#L223rtargetqueue_work)rtargetn ef"drivers/scsi/scsi_lib.c#L182" id="L1446 *     14 nam 108{
)Ss/scHoven ef *scsi_lib.c#L223rhovequeue_work)rhoven ef"drivers/scsi/scsi_lib.c#L182" id="L1447 *     14="dr 108{
1447d="L" id="L206" class="line" name="L2061448 *     14f=REQ_TYPE_BLOCK_PC 84144mp;&  )n>

1450p;&  "killing r"drive\n"urns th)"drivers/scsi/scsi_lib.c#L182" id="L1451 *     14clas2="lin25href="+code=14cla>14hid="Ldrivers/scsi/scsi_lib.c#L182" id="L1452 *     14 *buffired"cherea>    wi14 *b>145ne" name="L16scsi_lib.c#L223rdiv236
1453e" name="L16scsi_lib.c#L223rtargetqueue_work)rtargetn ef fpef="+code=sense#L182targetqueue_work)rs/sctargetn ef=scsi_lib.c#L223rdiv236
bufflen1454p;&  )rhoven ef1fpef="+code=senserdiv236
)hoven ef"drivers/scsi/scsi_lib.c#L182" id="L1455 *     14        <        *21455e" name="L16ef="+code=sense#L182init_PmL_errhqueue_work)rs/scinit_PmL_errhn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L1456 *     14id="2154" 2lass="line" n14id=>1456e" name="L16ef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" resulequeue_work)r"sulen ef1fpef="+code=senseDID_NO_CONNECTqueue_work)DID_NO_CONNECTn ef1<< 16"drivers/scsi/scsi_lib.c#L182" id="L1457 *     14  s (USB m75"-eue_agumen14  s>1457e" name="L16ef="+code=senseatomiccincqueue_work)atomiccincn ef=lassPef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" divers="L223" class="diversn ef"L236" class="line" ior"drive_cnequeue_work)ior"drive_cnea hr "drivers/scsi/scsi_lib.c#L182" id="L1458 *     142togL120">.max_a81458d="L" id="L206" class="line" name="L2061459 *     14"linPrev"L166" cgarbagum14"li>145ICE_BUSY" cla="comment"> * @timeoutlaurns the req->errorblocked" 2lass="sref146> *     14L16sclarity * Nks by zer14L16>146/lass="comment"> * @timeout:>>>>>>>>* SCSI ="drive  @tpleeion path will6do rs/scdivers_unbusy(),urns the req->errorblocked" 2lass="sref1461 *     14ock2d26 name="L149">14ock>1461cases.  Either the host is >>>>>>>>* bump nusy counts.  To bump t:  Puuntrbl, we neee to danrsn ns the req->errorblocked" 2lass="sref1462 *     14_lib.c#L160" id="L160" c14_li>146mment"> *              comma::::::::* with t:  locks aivnormal issue path doeii_lib.c#L201" id="L201" class="line" name="1463 *     14                *              or ::::::::*turns the req->errorblocked" 2lass="sref1464 *     14"sref">target_blocked1464p;&  
)divers_busya hr++"drivers/scsi/scsi_lib.c#L182" id="L1465 *     14ode=max_target_blocked" 14ode>1465e" name="L16ef="+code=sense#pin_unlock236

)r"drive_driuen ef"L236" class="line" driue_lock236

)rhoven ef"L236" class="line" hove_lock236
1467e" name="L16ef="+code=sense#hovequeue_work)rhoven ef"L236" class="line" hove_busyqueue_work)hove_busya hr++"drivers/scsi/scsi_lib.c#L182" id="L1468 *     1466" class="line" name="L1466">146mp;&  )targetebusya hr++"drivers/scsi/scsi_lib.c#L182" id="L1469 *     14"> 167 >1469e" name="L16ef="+code=sense#pin_unlock236
)rhoven ef"L236" class="line" hove_lock236
1470p;&  )r"drive_driuen ef"L236" class="line" driue_lock236
147ne" name="L16scsi_lib.c#L223n>
< @tpleee_r"drivequeue_work)n>
< @tpleee_r"driven ef=scsi_lib.c#L223red236
1473e" n6" id="L206" class="line" name="L2061474 *     14/a>(1475e" nstatic6void)r"driven ef *scsi_lib.c#L223rd236
retries, int          * that are a14t">>1477"line" name=struct)rs/sccmsen ef *scsi_lib.c#L223cmd="L223" class="cmLa hrefpef="+code=senserd236

>147mp;&  )alloweda hre+ 1):* ef="+code=senserd236
)timeouea hr"drivers/scsi/scsi_lib.c#L182" id="L1479 *     14si_lib.c#L177" id="L177"14si_>147ICE_BUSY" cla(nt osieionqueue_work)di> osieiona hr"drivers/scsi/scsi_lib.c#L182" id="L148> *     1479" class="line" name="L1479">148sd="L" id="L206" class="line" name="L2061481 *     14id="L180" class="line" n14id=>1481e" name="L16scsi_lib.c#L223INIT_LIST_HEADqueue_work)INIT_LIST_HEADn ef=lassPef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" eh_meoryqueue_work)eh_meory" na "drivers/scsi/scsi_lib.c#L182" id="L1482 *     14me="L181"> 181      14me=>1482d="L" id="L206" class="line" name="L2061483 *     14"line" name="L182"> 182<14"li>1483e" name="L16scsi_lib.c#L223atomiccincqueue_work)atomiccincn ef=lassPef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" divers="L223" class="diversn ef"L236" class="line" iodoef_cnequeue_work)iodoef_cne" na "drivers/scsi/scsi_lib.c#L182" id="L1484 *     14f">spin_unlock_irqrestor14f">>1484p;&  )r"sulen ef drivers/scsi/scsi_lib.c#L182" id="L1485 *     14de=queue_lock" class="sr14de=>1485e" name="L160"> 160)atomiccincn ef=lassPef="+code=sensecmd="L223" class="cmLa hr"L236" class="line" divers="L223" class="diversn ef"L236" class="line" ioerr_cnequeue_work)ioerr_cne" na "drivers/scsi/scsi_lib.c#L182" id="L1486 *     14csi_lib.c#L183" id="L18314csi>1486d="L" id="L206" class="line" name="L2061487 *     14href="drivers/scsi/scsi_14hre>1487e" name="L16ef="+code=sensedi> osieionqueue_work)di> osieiona hr fpef="+code=sense#L182decide_di> osieionqueue_work)#L182decide_di> osieionn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L1488 *     14href="drivers/scsi/scsi_14hre>1488"line" name=()SUCCESSn ef1&assPlassP"sref">retries, int )time_beforen ef=scsi_lib.c#L223cmd="L223" class="cmLa hr"L236" class="line" jiffies_at_allocqueue_work)jiffies_at_alloca hre+ ef="+code=sensewait_forqueue_work)wait_fora hr,6ef="+code=sensejiffiesqueue_work)jiffiesa hr  e="sref">retries, int  2csi_lib.c#L223rdiv_print/a>->->149id="L169" class="lineame="L225"> 2.  Either thstring">"timing oue Purpose, waited %lus\n"urns th,e req->errorblocked" 2lass="sref14c2 *     14ass="comment"> * Argumen14ass>149ne" name="L160"> 160 2csi_lib.c#L223wait_forqueue_work)wait_fora hr/2csi_lib.c#L223HZqueue_work)HZa hr "drivers/scsi/scsi_lib.c#L182" id="L1493 *     14c#L191" id="L191" class=14c#L>1493e" name="L160"> 160 osieionqueue_work)di> osieiona hr fpef="+code=senseSUCCESSqueue_work)SUCCESSn ef"drivers/scsi/scsi_lib.c#L182" id="L1494 *     14i_lib.c#L192" id="L192" 14i_l>1494p;&  1495e" name="L160"> 1601496e" name="L16ef="+code=senser nameog_ @tpleeionqueue_work)#L182eog_ @tpleeionn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr,6ef="+code=sensedi> osieionqueue_work)di> osieiona hr "drivers/scsi/scsi_lib.c#L182" id="L1497 *     14
retries, int )SUCCESSn ef:"sref">retries, int  *     15"> *   We do this for on15"> >1509"line" name="L225"> ame="L16ef="+code=senser namfinish_Purposequeue_work)#L182finish_Purposen ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L15"1 *     15".c#L189" id="L189" clas15".c>150id="L169" class="lineame="L22break"drivers/scsi/scsi_lib.c#L182" id="L15"2 *     15"ss="comment"> * Argumen15"ss>150ne" name="L160"> 160
retries, int 1503e" name="L160"> 160)rs/scdriue_insertn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr,6ef="+code=senseSCSI_MLQUEUE_EH_RETRY236
1504p;&   1601505e" name="L160"> 160
retries, int 
150="line" name="L225"> ss="sref"f="+code=sense )rs/scdriue_insertn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr,6ef="+code=senseSCSI_MLQUEUE_DEVICE_BUSY236

1507" class="linhref="+c0"> 160150mp;&  retries, int 150ICE_BUSY" class="srefffffffff(1519"line" name="L225"> ame="L16ss="sref"f="+code=sense )#L182finish_Purposen ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi/scsi_lib.c#L182" id="L1511 *     15class="line" name="L209"15cla>151id="L169" cla6" id="L206" class="line" name="L20615i2 *     15/scsi_lib.c#L210" id="L215/sc>151mment6" id="L206" class="line" name="L20615i3 *     15ib.c#L211" id="L211" cla15ib.>1513d="L" id="L206" class="line" name="L20615i4 *     15lib.c#L212" id="L212" cl15lib>151ine" laurns the req->errorblocked" 2lass="sref1515 *     15scsi_lib.c#L213" id="L2115scs>151="line" name="L213"> 213* Function: cla 2lasr"drive_fn()urns the req->errorblocked" 2lass="sref1516 *     15#L214" id="L214" class="15#L2>151me="L214"> 2141515 a Pur ose: cla Main strategy routine for SCSIi_lib.c#L201" id="L201" class="line" name="1518 *     15line" name="L216"> 216151class="comment"> * @timeout:*_lib.c#L201" id="L201" class="line" name="1519 *     15ss="line" name="L217"> 215ss=>151 cases.  Either the host is *;Arguost s: clq69" cla- Pointer to actual driuei_lib.c#L201" id="L201" class="line" name="152> *     15218" class="line" name="15218>152/lass="comment"> * @timeout:a_lib.c#L201" id="L201" class="line" name="1521 *     15"drivers/scsi/scsi_lib.c15"dr>1521cases.  Either the host is * Rrite *              commaa_lib.c#L201" id="L201" class="line" name="1523 *     15d="L221" class="line" na15d=">1523e" nnt"> *              or * Lock status: IO ="drive lock assuosd to be held when6c"lledi_lib.c#L201" id="L201" class="line" name="1524 *     15si_cmnd result
152ine"  *turns the req->errorblocked" 2lass="sref1525 *     15e" name="L224"> 224i15e" >1525e" nstatic6void)#L182r"drive_fnn ef=struct)r"drive_driuen ef *scsi_lib.c#L223d236
retries, int  226  15" n>1527"line" name=struct


,>152mp;&  flags,
15cla>152ICE_BUSY" clastruct)rs/sccmsen ef *scsi_lib.c#L223cmd="L223" class="cmLa hr"drivers/scsi/scsi_lib.c#L182" id="L153> *     15s/scsi/scsi_lib.c#L228" 15s/s>1530CE_BUSY" clastruct)r"driven ef *scsi_lib.c#L223red236



 160 214153="line" name=laurns the req->errorblocked" 2lass="sref1537 *     15=req" class="sref">req1535 >>>>>>>>* To rtart with, we keep looping until t:  driue is empty, or untilurns the req->errorblocked" 2lass="sref1538 *     15len" class="sref">buffle15len>153class="comment"> * @timeout >>>>>>>>* t:  hove rivno longer able to accopt any more ="drivesi_lib.c#L201" id="L201" class="line" name="1539 *     15si/scsi_lib.c#L238" id="15si/>153 cases.  Either the host is >>>>>>>>*turns the req->errorblocked" 2lass="sref154> *     15, )rhoven ef1fpef="+code=senserdiv236
)hoven ef"drivers/scsi/scsi_lib.c#L182" id="L1541 *     15class="sref">__GFP_WAIT<15cla>154id="L169" clafor (;; e="sref">retries, int  160<(nt)rtnn ef"drivers/scsi/scsi_lib.c#L182" id="L1543 *     15=memcpy" class="sref">me15=me>1543e" name="L160"> 160 214                 * get next driueable ="drive.  We do t:is early to make sursn ns the req->errorblocked" 2lass="sref1545 *     15lk_unprep_requebuffmcpyd15lk_>154="line" name="L213"> 213                * that t:  wrdrive is fully preparsd even6(154me="L214"> 214{
1545 >>>>>>>>>>>>>>>>*turns the req->errorblocked" 2lass="sref1548 *     15f=REQ_TYPE_BLOCK_PC 84154mp;&  )n>


)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236
1559"line" name="L225"> ame="L16break"drivers/scsi/scsi_lib.c#L182" id="L1551 *     15clas2="lin25href="+code=15cla>15hid="Ldrivers/scsi/scsi_lib.c#L182" id="L1552 *     15 *buffired"cherea>    wi15 *b>155ne" name="L160"> 160<(retries, int 1553e" name="L160"> 160->->bufflen1554p;&   160<160"rejecting I/O to offf">b divers\n"urns th)"drivers/scsi/scsi_lib.c#L182" id="L1555 *     15        <        *21555e" name="L160"> 160)rs/sckill_r"driven ef=ef="+code=sensered236
155="line" name="L225"> ss="srefcontinue"drivers/scsi/scsi_lib.c#L182" id="L1557 *     15  s (USB m75"-eue_agumen15  s>1557" class="linhref="+c6drivers/scsi/scsi_lib.c#L182" id="L1558 *     152togL120">.max_a81558d="L" id="L206" class="line" name="L2061559 *     15"linPrev"L166" cgarbagum15"li>1559d="L" id="L206" class="line" name="L206156> *     15L16sclarity * Nks by zer15L16>1569"line" name="L225"> 214"> 21415ock>1561cases.  Either the host is >>>>>>>>>>>>>>>>* Rrmove t:  wrdrive from t:  wrdrive listi_lib.c#L201" id="L201" class="line" name="1562 *     15_lib.c#L160" id="L160" c15_li>156mment"> *              comma::::::::>>>>>>>>*turns the req->errorblocked" 2lass="sref1563 *     15                160<(target_blocked1564p;&   160
)n>

1565e" name="L160"> 160
)divers_busya hr++"drivers/scsi/scsi_lib.c#L182" id="L1566 *     15scsi_lib.c#L163" id="L1615scs>1566d="L" id="L206" class="line" name="L2061567 *     15id="L164" class="line" n15id=>1567" class="linhref="+cscsi_lib.c#L223rpin_unlock236


156mp;&  

 167 >156ICE_BUSY" class="sref(retries, int 1579"line" name="L225"> ame="L16ef="+code=senseprint/a>->)KERN_CRIT"line".  Either thstring">"impossible ="drive in %s.\n"urns th"sref">retries, int  25"> ame="L16e.  Either thstring">"pleasepmail6a stack trace to "urns th"sref">retries, int 157ne" name="L160"> 160 25"> ame="L16e.  Either thstring">"sy"ux- 1573e" name="L160"> 160 ame="L16ef="+code=sense__func__queue_work)__func__a hr "drivers/scsi/scsi_lib.c#L182" id="L1574 *     15/a>( 160
)n>

"foo"urns th)"drivers/scsi/scsi_lib.c#L182" id="L1575 *     153" class="line" name="L1153" >1575e" name="L160"> 1601557" class="linhref="+c6drivers/scsi/s, int51567" class="linhref"L16ef="+code=senserpin_lock236
)rhoven ef"L236" class="line" hove_lock236
 >1569"line" name="L225"> 214"> 214146/lass="commeeeeeeeee15ock>1561cases.  Either the hoorkr tp., int L182" id="L1482 *     14m5="L185860" id="L160" c15_li>156mment"> *            &quoRrmoners_b  t:  bfn wouldhat v56m us>>>>* Rryt is * Rrite * her the hooo eue_wken aoork.t"> * @Rrmo tp    rinh:  wr @timresourPuuntrbl, we neee to danrsn ns the req->er5scsi_lib.c5L182" id="L1484 *     14f5>spin58ers/scsi/scsi_l15 154ine"  2a runblock aoork     reosd to be held when6c"lledi_lib.c#L201" id="L20scsi_lib.c5L182" id="L1486 *     14c5i_lib58/a>{
 214>>>>>>>*turns the req->errlass="line5 name="L2061487 *     14h5ef="d58 class="line" n15id=>.c14"dr>142id="L169" cla()n>
retriescsi_lib.c5L182" id="L1488 *     14h5ef="d58="line" name="L1566"> n15id=>.c14"dr>142id="L1694iy&_ping en ef=scsi_lib.4iy&_ping 36

>hr"L236" class="line"nrivv>>hr"L23erdiv236
, int5142id="L1694iy&_addef=i236" class="line4iy&_addef=i236

>hr"L236" class="line"nrivv>>hr"L23erdiernel.org\n"urns th,e req->errs, int5>h4iy&236
149id="Lgooo _work)rhovenotcode=sense 
 * Argumen14ass>1557" class="linhref="+c6drivers/scsi/scsi_lib.c5L182" id="L1493 *     14c5L191"59" id="L211" cla15ib.>1513d="L" id="L206" cscsi_lib.c5L182" id="L1494 *     14i5lib.c59ef="+code=devic15/a>>USY" class="srefffffffff(rgetebuef="+code=sense 

1495e" ngooo _work)rhovenotcode=sense 
.c14 class="srefffffffff(hove_ef="+code=sense )rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236

 n15id=>gooo _work)rhovenotcode=sense 
, int51559d="L" id="L206" 6s, int6 *     15"6 *   6e do this for on15"> >class="srefffffffff(rgetebense )rtargetn ef"L236" class="line" targetebusyqueue_work)targetebusya hr++"drivers/scsi6scsi_lib.c6L182" id="L15"1 *     15"6c#L186" id="L189" clas15".c>a>
)rhoven ef"L236" class="line" hove_busyqueue_work)hove_busya hr++"drivers/scsi6scsi_lib.c6L182" id="L15"2 *     15"6s="co60> 181      14me=>1482d="L" id="L206" 6s, int61569"line" name="L225"> 214"> 214154ine"  214 22222222222222t.  W    comm againd to be held when6c"lledi_lib.c#L201" id="L26s, int660/a>{
 214>>>>>>>*turns the req->er6scsi_lib.c6L182" id="L15"7 *     15"6span>61567" class="linhref="+csc_ire+ 1):* ef="+codnhref="+csc_ire236
)rhoven ef"L236" class="line" hove_lock236
.max_a81558d="L" id="L206" 6s, int61569"line" name="L225"> 214"> 214 21415ock>1561cases.  Either the hoo   me_brsIT<15" timeo accopt any more ="drivesi_lib.c#L201" id="L26lass="line6 name="L20615i2 *     15/6csi_l6160" id="L160" c15_li>156mment"> *              comma::::::::>>>>>>>>*turns the req->er6lass="line6 name="L20615i3 *     15i6.c#L261d="L191" class=14c#L>1493e" name="L1he re"L16ef="+code=sense#L182init_PmL_errhqueue_work)rs/scinit_PmL_errhn ef=scsi_lib.c#L223cmd="L223" class="cmLa hr "drivers/scsi6lass="line6 name="L20615i4 *     15l6b.c#L61ef="+code=devic14/a>>147ine" drivers/scsi6orblocked"62lass="sref1515 *     15s6si_li61arget_blocked" 15ode>1569"line" name="L225"> 214"> 214, int62lass="sref1516 *     15#6214" 6d="L214" class="15#L2>151me="es.  Either the hoDisi/tchmp nusy_workooo Rrmolow-levelon clalaccopt any more ="drivesi_lib.c#L201" id="L26lcsi_lib.c62lass="sref1517 *     1516" cla6s="line" name="L1515">1515 *              comma::::::::>>>>>>>>*turns the req->er6lcsi_lib.c6ine" name="1518 *     15l6ne" n61E_BLOCK_PC 84154mp;&  , int6ine" name="1519 *     15s6="lin61 do this for on15"  >1567" class="linhref"L16_ire+ 1):* ef="+codnhref+csc_ire236


 >.c14"dr>142id="L169 160<(nt
149id="Lgooo _work)rhovemeo_dela6" class="line" meo_dela6al236
 * Argum1557" class="linhref="+c6drivers/scsi61" class="6ine" name="1523 *     15d6"L22162" id="L211" cla15ib.>1513d="L" id="L206" 61" class="6ine" name="1524 *     15s6_cmnd62ef="+code=devgooo _work)rhovemeo" class="line" meoal236
retri6s, int61467e" nhref="+csc_ire+ 1):* ef="+codnhref="+csc_ire236
)rhoven ef"L236" class="line" hove_lock236
flags1569"line" name="L225"> 214"> 21414ock>1461cases.  Eithe> 2141534p;      riue_lock2driveaccopt any more ="drivesi_lib.c#L201" id="L26scsi_lib.c6L182" id="L1532 *     15=6MA_TO6360" id="L160" c14_li>146mment"> *    ccopt any more ="drivesi_lib.c#L201" id="L26s" class="6L182" id="L1533 *     15261" id63       *   Decre146/r thvers_busyqu      thsty, nr thi     OK,::::a*  suchccopt any more ="drivesi_lib.c#L201" id="L26s" class="62lass="sref1534 *     15g6t_req63ers/scsi/scsi_l15 154ine" 1505s ( @timlimitsntilset/r ts) L22uldhrunb, we keep aomuuntrbl, we neee to danrsn ns the req->er6srblocked"6L182" id="L1535 *     15e6uest_63_requebuffmcpyd15lk_>154="line" namentWauost  tiaccopt any more ="drivesi_lib.c#L201" id="L26scsi_lib.c6 name="L2061536 *     15_6ib.c#63="L214" class="15#L2>151me="es.  Eit   comma::::::::>>>>>>>>*turns the req->er6orblocked"62lass="sref1537 *     15=6eq" c63 class="line" n14id=>1467e" nhref"L16_ire+ 1):* ef="+codnhref+csc_ire236


146mp;&ue_tqeef="+cod"+code=sensen>
)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236

 >1469e" n0"> 160

retri6scsi_lib.c6L182" id="L1541 *     15c6ass="6ref">__GFP_WAI.c14"dr>142id="L169n0"> 160
146mp;&ue_tdela6t)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236

retri6s" class="62lass="sref1544 *     15 6a hre644f">flags1569"line" name="L225"> "> 214>>>, wev236


1467e" puL16(< !ef="+code=sensegpuL16(< !e36

>
146mp;&ahref"L16_ire+ 1):* ef="+codnhref+csc_ire236


148sd="L" id="L206" 6scsi_lib.c6L182" id="L1551 *     15c6as2="6in25hr36
)Ss/scHoven ef *scsi_lib.c#L223rhove236
retri6s, int6,>152mp;&  )Ss/scHhove_6" class="line" rdhove_6" al236
bufflen<36

142id="L169nockn ef=scsi_lib.c#L223rhovequeue_work)rhove nay, ned_isa_dm6" class="line"  nay, ned_isa_dm6hove236
1534p; _work)rhoveBLK_BOUNCE_ISA" class="line" BLK_BOUNCE_ISAal236
 214"> 214>>>>>>>*turns the req->er6lass="line6 name="L206156> *     15L66scla66ty * Nks by zer14L16>146/lass="commenthardwapraamecalmlimitaccopt any more ="drivesi_lib.c#L201" id="L26orblocked"62lass="sref1561 *     15o6k2d26 name="L149">15ock>1561cases.  Eit   comma::::::::>>>>>>>>*turns the req->er61" class="6ine" name="1562 *     15_6ib.c#6622lass="line".c14 class="srefffffPCI_DMA hre_IS_PHYsepef="+code=senPCI_DMA hre_IS_PHYshove236
1534p; _work)rhoveBLK_BOUNCE_ANeSCSI_MLQUEUE_DEBLK_BOUNCE_ANeal236
66ef="+code=devic14/a>>147ine" drivers/scsi6scsi_lib.c6L182" id="L1565 *     15o6e=max6target_blockedwork)Ss/scHhove_6" class="line" rdhove_6" al23work)di> osieiona h="L16(< !ef="+code=sensegona h="L16(< !e236

142id="L169hove_6" class="line" rdhove_6" al23w3d236
<"dr>142id="L169hove_6" class="line" rdhove_6" al23v236

1567" class="libo na_loimit=sense#L182initbo na_loimit236< ="_work)Ss/scHhove_6" class="line" rdhove_6" al23v236

.max_a81558d="L" id="L206" 6scsi_lib.c6L182" id="L1569 *     15"6 167<6a>)rhovebo na_loimit=sense#L182initbo na_loimit236<>
, int6, int6

, int6 181      14me=>1482d="L" id="L206" 6orblocked"62lass="sref1573 *     15L671" c6ass="l/a>)#L182r"drive_fnn ef=struct)r"drive_dr__L" ideue_wt)Ss/scHoven ef *scsi_lib.c#L223rhoveernel.org\n"urns th,e req->er6scsi_lib.c6L182" id="L1574 *     15/6>()Ss/scHoid
retri61csi_lib.c6L182" id="L1476 *     14 6     67 2lass="line"/a>)#L182r"drive_fnn ef=struct)r"drive_driuen ef *scsi_lib.c#L>
    67226"> 226  15" n>1527"line" nama hr"L236" class="line" divers=e_work)Ss/scH6" class="line" rd6" al23work)di> osieioockn ef=scsi_lib.c#L223rhovequeue_work)rhovenma_6" class="line" rd6ma_6" .c#L>
 >1469e" iuen ef *scsi_lib.c#Led236

1534p; _work)rhoveLa hreffpef="+code=senseNUL>
, int6L182" id="L1482 *     14m6="L1868> 181      14me=>1482d="L" id="L206" 6lass="line6 name="L2061483 *     14"6ine" 68       214"> 214>>>>>>>*turns the req->er6scsi_lib.c6L182" id="L1486 *     14c6i_lib68c#L163" id="L1614scs>1466e" ue_taggedqmax_segither+code=senser"drue_taggedqmax_segither/a>)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236
)runsigned L22rt223d236

574p;&aaaaaaaaaaaaaaaaaa82r"drive_fnn eVICE_BAX_SG_CHAIN_SEGMENTsepef="+code=senVICE_BAX_SG_CHAIN_SEGMENTs.c#L2L>
.max_a81558d="L" id="L206" 6s, int6142id="L169nce_=hove_prst_dm6" class="line" nce_=hove_prst_dm6236
retri6s, int6retri6sass="line62lass="sref1491 *     14b6c#L186" id="L189" clas14b.c>149id="L3d236


 * Argumen14ass>>>>>>>>>>>>>>>>>>>>>>runsigned L22rt)82r"drive_fnn eVICE_BAX_PROT_SG_SEGMENTsepef="+code=senVICE_BAX_PROT_SG_SEGMENTseNULL>
1493e" name="L1BUG_ONSCSI_MLQUEUE_DEBUG_ON236

142id="L169eockn ef=scsi_lib.c#L223rhovev236
>1614scs>1466e" ue_taggedqmax_rguogrity_segither+code=senser"drue_taggedqmax_rguogrity_segither/a>)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236

1467e" ue_taggedqmax_hw_sectorr+code=senser"drue_taggedqmax_hw_sectorr/a>)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236


146mp;&ue_taggedqbo na_loimit=sense#L182initbe_taggedqbo na_loimit/a>)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236


, int6 >1469e" veart_tagquegithe_bo nda236" class="line"veart_tagquegithe_bo nda23/a>)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236


, int7 *     15"7 *   70href="+code=buf151540p;&6ma_setqueg_bo nda236" class="line"6ma_setqueg_bo nda23/a>)rs/scdiv_driue_=6" class="line" rd6" al23223d236


, int71467e" ue_taggedqmax_uegithe_sizef="+code=sensegue_taggedqmax_uegithe_size/a>)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236
)rs/scdiv_driue_=6" class="line" rd6" al23a=>
, int71513d="L" id="L206" 7scsi_lib.c7L182" id="L15"4 *     15"7lib.c70ef="+code=dev.c14 class="sreffffffockn ef=scsi_lib.c#L223rhovequeue_work)rhove se_cluste="d" ef=scsi_lib.c# se_cluste="d".c#L223d236
1565e" name="L1lockn ef=scsi_lib.c#L223d236


7 214"> 214buffle15len>153class="commentset a  t:son     default align146/ on word bo nda2ies:clal214"> 214 21415ock>1561cases.  Eit   comma::::::::>>>>>>>>*turns the req->er7lass="line7 name="L20615i2 *     15/7csi_l712class="line" n14id=>1467e" ue_taggedq6ma_align146/f="+code=sensegue_taggedq6ma_align146//a>)rs/scdiv_driue_="adyn ef=scsi_lib.c#L220x03=>
1513d="L" id="L206" 7lass="line7 name="L20615i4 *     15l7b.c#L71ef="+code=dev1534p; _work)rhoveiuen ef *scsi_lib.c#L>
, int72lass="sref1516 *     15#7214" 7d="L2146
)#L182r"drive_fnn ef=struct)r"drive_drL" ideue_wt)Ss/scHhrefn ef=scsi_lib.c#L223rdiv
retri71" class="7ine" name="152> *     15278" cl72 do this for /a>)#L182r"drive_fnn ef=struct)r"drive_driuen ef *scsi_lib.c#L>
1467e" iuen ef *scsi_lib.c#Led236
>1534p; _work)rhoveLa hreffpef="+code=senseNUL>


1467e" veart_tagquoftirq_donef="+code=sensegue_taggedquoftirq_done/a>)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236
146mp;&ue_taggedqquefimed_meo" class="line" ue_taggedqquefimed_meo/a>)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236

 >1469e" veart_tagqlld236" class="line" diveart_tagqlld236" /a>)rs/scdiv_driue_="adyn ef=scsi_lib.c#L223d236

 214"> 214154ine"* F name=":for /e reb+csc_oid 214 214 2141515>>>* bean ct_tagkooo Rrmoe" divaccopt any more ="drivesi_lib.c#L201" id="L27orblocked"72lass="sref1538 *     15l7n" cl73s="sref">buffle15len>153clas 214"> 214>>>>>>>*turns the req->er7orblocked"72lass="sref154> *     15<7a>, <74ty * Nks by zer14L16>146/las 214"> 21415ock>1561cas* R534p;s:for  Nothr t214"> 214, int7146mmen 214"> 2141463e" * Le mustatus:fNotWe ms a154ine"*ccopt any more ="drivesi_lib.c#L201" id="L27srblocked"72lass="sref1545 *     15l7_unpr7p_requebuffmcpyd15lk_>154="li* Notes:for    Trire    no me_br norno looRrmr means bytwhichmp nuoid 2141515buffle15len>153clas   comma::::::::>>>>>>>>*turns the req->er7scsi_lib.c7L182" id="L1549 *     15<7a>{
<7 href=void23d236
,>152mp;&  )Ss/scHoven ef *scsi_lib.c#L223rhove223d236
retri7scsi_lib.c7L182" id="L1551 *     15c7as2="751 >1469e" fockn ef=scsi_lib.c#L223rhovequeue_work)rhovehove_self_b+csctdn ef=scsi_lib.c223r_self_b+csctd.c#Led21>
, int7

>147ine" drivers/scsi7orblocked"7L182" id="L1555 *     15 7     75_requebuffmcpyd15lk_>154="l> 214"> 214 2141515 214buffle15len>153clas  Purithe:for  Utility f name=" uhed bytlow-levelon clalsooo eue_w furRrmr214"> 214 21415ock>1561cas* Arguither:forL223r2222222- Hove&quod>>>>>>>*turns the req->er71" class="7ine" name="1562 *     15_7ib.c#7660" id="L160" c14_li>146mmen 214"> 2141463e" * R534p;s:for  Nothr t214"> 21476ers/scsi/scsi_l15 154ine"*ccopt any more ="drivesi_lib.c#L201" id="L27scsi_lib.c7L182" id="L1565 *     15o7e=max76_requebuffmcpyd15lk_>154="li* Le mustatus:fNotWe ms a1515buffle15len>153clas               get unb+csctddoRrmr than Rrmolow-levelon clal ceuer t214"> 214 *     15r7/scsi77ty * Nks by zer14L16>146/las 214"> 214, int715ock>1561cas*              Tueabeabdone::::an API f name=" so Rrahstyangesooo Rrm214"> 214146mmen               rguornals of Rrmohe r mid-layal won'tuoid 214>>>>>>>*turns the req->er7scsi_lib.c7L182" id="L1575 *     1537 clas7="linevoid23d236
,>152mp;&  )Ss/scHoven ef *scsi_lib.c#L223rhove223d236
retri7s" class="71467e" nockn ef=scsi_lib.c#L223rhovequeue_work)rhovehove_self_b+csctdn ef=scsi_lib.c223r_self_b+csctd.c#Led20>
146mp;&adrivrun=hove_ef="+sclass="line" dilna hrun=hove_ef="+s236

)rhoveEXPORT_SYMBOhreffpef="+code=EXPORT_SYMBOh236

15hid="Ldrivers/scsi7s, int7L182" id="L1482 *     14m7="L1878> 181rgu236

retri7scsi_lib.c7L182" id="L1484 *     14f7>spin78ef="+code=dev.gu236

"lna hdata_buffer" comma:ernel.org\n"urns th,e req->er7lass="line7 name="L2061487 *     14h7ef="d78 class="line" n15id=>574p;&aaaaaaaaaaaaaaaaaa222hizeof/=r15a>,>152mp;&  "lna buffer236<2ate236&q4c1572 *   rk)Ss/ ef="ng">&i
142id="L169nce_=7ove_prst_dm6" clas3rhovequeue_work
, int63d236
7a hre7ckn ef=scsi_lib.c#L223rhovev236
149id="L3d736
<-ode=EXPORT_SYMBONOMEMhrefrpin_lna hunNOMEMsi7scsi_lib.c7L182" id="L1485 *     14d7=q"co6ment">7* Argumen14ass>>>>>>>>>>>7>>>>>79rivers/scsi61" class="6ine" name="1523 *     15d6"791"69d="L171" class=14c#L>1493e" nam7="L1B79" 7lass="line7 name="L20615i4 *     15l7b.b.c69ef="+7ode=devic15/a>>1614scs>1476e" u7_taggedqmax_rgib.cass="line" dilnaka hr "drivers/scsi7ssi7sr
, int6
gp/a>


retri6s*_bufferf="+code=sensegona heata_atterliue_locka hr "drive_atterliue#L201" id="L27s the req-req->er7lass="lian>69 clas7="line" n14id=>1467e" ue_7agged79si7lcsi_lib.c7ine" name="1518 *     15l7ne96"69="lin7" name="L1466">146mp;&ue_7agged790<(nt)di> oLgp/a>

"lna hdata_bufwork)di> oLgp/a>


retri6   1si_lib.c7ine" name="1518 *     15l7ne9e8refrdivn class="c14"> >1469e" vea7t_tag7uegithe_bo ndaaaaaaaaaaaaaaaaaaaaaaaaarhovev236
1540p;&6ma8setqu809 160<(nt

, int615hid="Ldr8vers/801467e" ue_8agged80>>>runsigned L22rt)82r"drive_fnn eVICE_BAXnserwork)di> oLgp/a>

1565e" nam8="L1l80" 7scsi_lib.c7L182" id="L1486 *     14c7i8an>70c#L168" id="L1615scs>1566d="L" 8d="L2806n ef=scsi_lib.c#L223rwork)di> oLgp/a>

poollna hda_mlab_pool/a>
poollna hda_mlab_pool=sclass="line" dilnaSG_MEMPOOL_SIZEue_locka hr "drSG_MEMPOOL_SIZE="linsi_lib.c7L182" id="L1486 *     14c7i8a7>70c#L168""line" n14id=>1467e" ue_825"> 80aaaaaa222hizeof/=r15a>,>152mp;&  )di> oLgp/a>

146mp;&ue_8ommen800<(nt

, int6 >1469e" vea8 Eith80egithe_bo ndaaaaaaaaaaaaaaaaa.c#min_notczeropa:etiue_locka hr "drpa:eti=sclass="line" dilnaKERN_ERRue_locka hr "drKERN_ERRe=sensfer" comma:ernel.org\driu:::::pan cla" nasag g">pool pan7;s\n req->er7l1si_lib.c7ine" name="1518 *     15l7n8b.c71ty * 8ks by zer14L16>146/lass="8omme*819 160<(nt)di> oLgp/a>

15ock>1561cases.8 Eit 81

1467e" ue_8agged81>>>runsigned L22rt)82" class="6ine" name="1523 *     15d6"8#L271" id=8L211" cla15ib.>1513d="L" 8d="L281_ONSCSI_MLQUE" class="6ine" name="1523 *     15d6"8#.c70ef="+8ode=dev1534p; _work)r8oveiu81si7orblocked"7L182" id="L1555 *     15 7 8_li71arget8557" class="linhref="+c6d8ivers81kn ef=scsi_li.c#L>


)#L182r"drive_fnn ef=st8uct
, int681egithe_bo ndaaaaaaaaa="+code=sensegona heata_buf_lockag_pool/a>
gp/a>


poolld theohrefdriue_locka 2">poolld theohta_bufwork)di> oLgp/a>

1467e" iue8 ef *82>>>runsigned L22rt)82enserhovequeue_work


>1534p; _wo8k8rhoveLa hreffp" class="6ine" name="1523 *     15d6"8ame72eue, 1535e" n" 8d="L282ss="line" rdhove_6" al23workche_create2d theohrefdriue_locka che_create2d theohta_bufwork)di> oLche.c#Led236
1467e" vea8t_tag8uoftirq_donef=.c#L>
<-ode=EXPORT_SYMBONOMEMhrefrpin_lna hunNOMEMsi7scsi_lib.c7L182" id="L1485 *     14d7=8int72="lin8" name="L1466">146mp;&ue_8agged8quefim" class="6ine" name="1523 *     15d6"8ain71 do t8 class="c14"> >1469e" vea8t_tag8lld236 class="6ine" name="1523 *     15d6"8si/73 do t8is for 1534p; _work)r8oveiu8n ef *=sclass="line" dilna hunbex36
, int61463e"> 218"> 2183" 7lass="line7 name="L20615i4 *     15l7b8req73ers/s8si/scsi_l15 154ine"* F8name=83Le=sensearget_bk)di> osiche_create2d theohrefdriue_locka che_create2d theohta_bufwork)di> oLche.c#Led236
 2183" 7scsi_lib.c7L182" id="L1486 *     14c7i8.c#73="L218" class="15#L2>151me="* P8rithe836n ef=scsi_liib.cass="line" dilnaka hr "drivers/scsi7ssi7sr
, int61515
buffle15len>153clas 218"> 21830<(nt)di> o2">poolld theohrefdriue_locka 2">poolld theohta_bufwork)di> oLgp/a>


 21849 160<(nt15ock>1561cas* R834p;s84csi7scsi_lib.c7L182" id="L1532 *     15=7M8" i7460" i8="L160" c14_li>146mmen 218"> 2184" 7s" class="7L182" id="L1533 *     152718cpy74     8154ine"*cc8pt an8 more ="drivesi_lib.c#L201" id/=r15a= *  mprska heode- issue a mprs a heodt;er7s, int7, int71515buffle15len>153clas   8omma:8::::::>>>>>>>>*turns the req-&copt a@mprspage: mprs pageibe ="drivers/ers/er7s, int7 21485/a>"d="L27scsi_lib.c7L182" id="L1574 *     15/7>82="751 >1469e" foc8n ef=85    Tueabeabdone::::an API f name="@oid  whri#he r beib.eiiaiq->er7scsi_lib.c7L182" id="L1569 *     15"7 8.c#75class8work)rhoveEXPORT_SYMB8hreff852222syangesooo n clalsoorahsuheriue@="ng:=.c#L>
s a ="+codui_lib="+act ="dolesmprs head"> ="ngt;er7scsi_lib.c7L182" id="L1569 *     15"7 8.re74ers/s8ode=devic14/a>>147ine" dr8vers/85more ="drivesi_lib.c#L201" id/=r15a@sshdt:dpla clto pulasense ="ng (b.cib.c2ensnoasense to behcolheodedid="L27s, int7 218"> 218 *     15r7/8 c#73="L218" class="15#L2>151me="* F8name=8:for /e reunb+csc_oid, int71515 218  ra= * ="L27s, int7buffle15len>153clas  P8rithe8for  Utility f name=" uhed bytl=r15a="ny mpan errb.="L27s, int7, int7 21815ock>1561cas* A8guith8r:forLintsi_lib.c7L182" id="L1575 *     1537 8d i7460" i8="L160" c14_li>146mmen 218"> 218
)Ss/scHhrefn ef=scsi_lib.c#L223rdiv





1463e" * R834p;s86_ONSCSI_MLQUEUE_DEBUGGPROT_SG_Schar23rdiv
"lna,se>

154="li* L8 must8tus:fN, int6

1515buffle15len>153clas   8     860<(nt
146/las 218"> 2187_bo nda236" class="line"6ma_memsi#236)di> ocm20>
)di> ocm20>
, int715ock>1561cas*  8     87si_lib.c#L223rhovequeue_workcm20>


, int7146mmen   8     87" 7s" class="7L182" id="L1533 *     152718" c77     8, int6876n ef=scsi_lib.c#L223rwork)di> oreal36<2ate2361467e" noc8n ef=87aaaaaa222hizeof/=r15aense3rhovequeue_workreal36<2ate236146mp;&adr8vrun=87d" na drivers/scsi71csi_lib.c.c#L>
<-ode=EXPORT_SYMBONOMEMhrefrpin_lna hunNOMEMsi7scsi_lib.c7L182" id="L1485 *     14d7=8ib.77href=8557" class="linhref="+c6d8ivers87egithe_bo ndaaaaaaaaae=sensegkmem_camemcphrefdriue_locka 2">cphta_bufwork)di> oreal36<2ate236"lna,sa hrefdriue_locle/23615hid="Ldr8vers/88)di> oreal36<2ate23688_ONSCSI_MLQUEUE_DEBUGfwork)di> oreal36<2ate236



, 1535e" n" 8d="L288kn ef=scsi_lib.c#L223d236


)di> oreal36<2ate236574p;&aaaa8aaaaa8aaaaaaa222hizeof/=r15arwork)di> oreal36<2ate236
hr "ddescriptb._le/gth;lna si_lsi_l 8csi_lib.c7L182" id="L1485 *     14d7=8cla76s="sr8*   rk)Ss/ ef="ng">&i8)di> oreal36<2ate236
hr "ddescriptb._le/gth;lnacsi_lib.c7L182" id="L1485 *     14d7=8cb.77href=8g_6142id="L168nce_=88ld236 class="6ine" name="1523 *     15d6"8lib6c#L1888 id="L18814csi>3d236
8a hre8ckn ef=scsi_lib.c#L223rhovev236

149id="L3d836

8* Argumen14ass>>>>>>>>>>>8>>>>>89>>>runsigned L22rt)82fwork)di> ocm20>
1493e" nam8="L1B89_ONSCSI_MLQUE" elses, int6>1614scs>1486e" u89hoveLa hreffpef="+cod#L22rdiv

hr "ddescriptb._le/gth;lna si_l 255 ||/a>, int6)di> o="ng<2>

69c#L168" id="L1615scs>1566d="L" 8d="L2896n ef=scsi_lib.c#L22333333333.c#L>
<-ode=EXPORT_SYMBOINVA hrefrpin_lna hunINVA si7scsi_lib.c7L182" id="L1485 *     14d7=8an>69 clas8="line" n14id=>1467e" ue_8agged89si7lcsi_lib.c7ine" name="1518 *     15l7n896"69="lin8" name="L1466">146mp;&ue_8agged890<(nt)di> oreal36<2ate236 >1469e" vea8t_tag8uegithe_bo ndaaaaaaaaaense3rhovequeue_workreal36<2ate2361540p;&6ma9setqu909 160<(nt
<-ode=EXPORT_SYMBONOMEMhrefrpin_lna hunNOMEMsi7scsi_lib.c7L182" id="L1485 *     14d7=9L1870n25hr9f="+code=15cla>15hid="Ldr9vers/90cphta_bufwork)di> oreal36<2ate236"lna,sa hrefdriue_locle/2361467e" ue_9agged90>>>runsigned L22rt)82rhovev236
)di> oreal36<2ate236
1565e" nam9="L1l90kn ef=scsi_lib.c#L223d236



hr "ddescriptb._le/gth;lnacsi_lib.c7L182" id="L1485 *     14d7=9a7>70c#L169""line" n14id=>1467e" ue_925"> 90aaaaaa222hizeof/=r15asi_lib.c7L182" id="L1485 *     14d7=9a8>70c#L169" name="L1466">146mp;&ue_9ommen900<(ntsi_lib.c7L182" id="L1485 *     14d7=9a9>70c#L169"class="c14"> >1469e" vea9 Eith90egithe_bo ndaaaaaaaaarhovev236

15ock>1561cases.9 Eit 911467e" ue_9agged91" 7s" class="7L182" id="L1533 *     152719#L271" id=9L211" cla15ib.>1513d="L" 9d="L291_ONSCSI_MLQUEa hrefdriue_locri#236)di> oue_locka hr "drivers/scsi7l,sfwork)di> ocm20>
)di> oDMA_TO_DEVICE0>
)di> oreal36<2ate236)r9oveiu91hoveLa hreffpef="+codant

)di> oreal36<2ate23670c#L1696

70c#L169)di> ou_cacmprska heod<2>
70c#L169223" class="NULL" na  e="9ref">91ld236 class="6ine" name="1523 *     15d6"9 cl72 do t9is for /a>)#L182r"drive_f9n ef=92/a>, int7, int71467e" iue9 ef *92    rguornals of Rrmohe r mid-layal@si_l:  driu, int7
ers/er7s, int7>1534p; _wo9k92more ="drivesi_lib.c#L201" id/=r15a@mprspage: mprs pageibe ="drivers/ers/er7s, int7 214"d="L27scsi_lib.c7L182" id="L1574 *     15/7>9me=72 clas9="line" n14id=>1467e" vea9t_tag922222he reunb+csc_oid146mp;&ue_9agged92:::::>>>>>>>>*turns the req-&copt a@.c#he reqnumb">  whri#he r beib.eiiaiq->er7scsi_lib.c7L182" id="L1569 *     15"7 9ain71 do t9 class="c14"> >1469e" vea9t_tag922222he reunb+csc_oid ="ngt;er7scsi_lib.c7L182" id="L1569 *     15"7 9si/73 do t9is for 1534p; _work)r9oveiu93/a>, int7, int71463e"> 219"> 21932222syangesooo n clalsoorahsuheriueclalaur ib.c2ensunsuccessful,  raoleshead"> off:et2(ei14"> 4t;er7orblocked"72lass="sref1563 *     15 7 9 .c70ef="+9si/scsi_l15 154ine"* F9name=93more ="drivesi_lib.c#L201" id/=r15a ra8 depend ="don whe14"> a six  raoen byteivaccopt wad="L27srblocked"7L182" id="L1568 *     1567"9st_73_requ9buffmcpyd15lk_>154="li 219"> 2193    Trire    no me_br norno looooooissued)2enssuccessfuld="L27s, int71515buffle15len>153clas 219"> 21930<(ntode=EXPORT_SYMBe_locmprska nse<2>
)Ss/scHhrefn ef=scsi_lib.c#L223rdiv




 21949 160<(nt15ock>1561cas* R934p;s94csi7s, int6146mmen 219"> 2194>>>runsigned PROT_SG_Schar236

1463e" * L9 must94f *scsi_lib.c#>
154ine"*cc9pt an94senser"dri.c#L>
_le/gth236_le/gthn efcsi_lib.c7L182" id="L1485 *     14d7=9ct_73_requ9buffmcpyd15lk_>154="li* N9tes:f945enser"dri.c#L>


1515buffle15len>153clas   9omma:94ve_ef="+sclass="line" dilna memsi#236)di> o="ng<2>



, int795_bo nda236" class="line"6ma_cm20>

 >1469e" foc9n ef=95si_lib.c#L223rhovequeue_workcm20>
 might not behL>
errs/erhL> a nse, but we neerhLtn gt;er7scsi_lib.c7L182" id="L1575 *     1537 92.c70ef="+9ode=devic14/a>>147ine" dr9vers/95senser"dri.c#Lnse3rhovequeue_work
154="l> 219"> 2195kn ef=scsi_lib.c#L223d236


1515 219buffle15len>153clas  P9rithe95ve_ef="+sclass="line" dilna ="d"10_ib._mr236146/las 219"> 21960enser"dri.c#Lnseib.c# se_cluste="d"10_ib._mr236, int615ock>1561cas* A9guith96146mmen 219"> 2196>>>runsigned L22rt)82r"drive_rdiv
1463e" * R934p;s96" 7lass="line7 name="L20615i4 *     15l7b9 re74ers/s9si/scsi_l15 154ine"*cc9pt an96hoveLa hreffpef="+codrhovev236



)di> ohead">_le/gth236_le/gthn ef = 8csi_lib.c7L182" id="L1485 *     14d7=9 1074="lin9" name="L1515">1515, int6buffle15len>153clas   9     960<(nt 2197_bo nsi_lib.c7L182" id="L1485 *     14d7=9c26 na9e="L149">15ock>1561cas*  9     97

146mmen   9     97>>>runsigned L22rt)82fwork)di> ocm20>
)di> ohead">_le/gth236_le/gthn ef = 4csi_lib.c7L182" id="L1485 *     14d7=9cre74ers/s9si/scsi_l15 154ine"*  9omma:97hoveLa hreffpcsi_lib.c7L182" id="L1532 *     15=7M9las7="line9oid23d236
976n ef=scsi_lis="line" dilna memsi#236)di> o6<2ate236"lna,s0,sa hrefdriue_locle/2361467e" noc9n ef=97si7lcsi_lib.c7ine" name="1518 *     15l7n9lla76s="sr9" name="L1466">146mp;&adr9vrun=97ve_ef="+sclass="line" dilna resul#236)di> oue_locka hr "drivers/scsi7l,sfwork)di> ocm20>
)di> oDMA_FROM_DEVICE0>
)di> o6<2ate236"lna,sa hrefdriue_locle/236
)rhoveEXPORT_SYMB9hreff98_bo nsi_lib.c7L182" id="L1485 *     14d7=9cve7726 na9f="+code=15cla>15hid="Ldr9vers/98982222syangesooo n clalsoorahs&&&&&&&&* byteiar olesproblem.  MODE_SENSEivaccopts:::: .c#L>
t;er7scsi_lib.c7L182" id="L1575 *     1537 9Lre74ers/s9ode=dev.gu236
, 1535e" n" 9d="L298" 7scsi_lib.c7L182" id="L1486 *     14c7i9p  77 2las9" id="L1614scs>1466e" n" 9dsdb_986n ef=scsi_liLnseib.c# se_cluste="d"10_ib._mr236
)di> oresul#236574p;&aaaa9aaaaa9aaaaaaa222hizeof/=ufwork)di> o=82" i_byte<2>
)di> oresul#236)di> oDRIVER_SENSE by zer14fdriueDRIVER_SENSEt;L27ss, int6)Ss/ ef="ng">&i9
)di> oushdt<2>
, int6)di> oushdt<2>
3d236
9a hre9ckn ef=scsi_lib.c#L223a222hizeof/=ufwork)di> oushdt<2>

)di> oushdt<2>
, int6149id="L3d9369* Argumen14ass>>>>>>>>>>>9>>>>>99/a>1493e" nam9="L1B992222syangesooo n clalsoorahs&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*gt;er7scsi_lib.c7L182" id="L1575 *     1537 9b.c69ef="+9ode=devic15/a>>1614scs>1496e" u99hoveLa hreffpef="+cod================a=sensegkmem_came_locka hr "drivers/scsi7lcsi_lib.c# se_cluste="d"10_ib._mr2361467e" ue_9agged99aaaaaa222hizeof/=r15acsi_lib.c7L182" id="L1532 *     15=7M9ala76s="sr9" name="L1466">146mp;&ue_9agged990<(nt >1469e" vea9t_tag99ld236 class="6ine" name="1523 *     15d620   70href20   7ss="c14"> >1469e" ve20   >20  n ef=scsi_liLn2rdiv

)di> oresul#236140hre28/11/a1e296ed8d45bb3b529f30839d0932430593_3/20   >class="6ine" name="1523 *     15d620 1 70href20 89" clas14b.c>149id="L320 89>20 )di> o6<2ate236"lna[0]cood0x86d&"&"=fwork)di> o6<2ate236"lna[1]cood0x0bd&"&"si_lib.c7L182" id="L1486 *     14c720 2 70href20  Argumen14ass>>>>>>>>>>20  A>20 >>>runsigned L22rt)82r"drive______ufwork)di> omprspagerefdriue_locka 2prspage="licood6 ||de=sensegkmem_camprspagerefdriue_locka 2prspage="licood8)ass, int61493e" na20 " >20 _ONSCSI_MLQUEUE_DEBUGGGGGGGGGaan clalaurns the req-/*rInitio breakage?&*gt;er7scsi_lib.c7L182" id="L1575 *     153720 4 70href20 de=devic15/a>>1614scs>120 de>20 hoveLa hreffpef="+cod========fwork)di> ohead">_le/gth236_le/gthn ef = srblocked"7L182" id="L1478 *     14/720 5 70href20 ="L1931557" class="linh20 =">20 kn ef=scsi_lib.c#L223t)822222rdiv
1566d="L"20  i>20 6n ef=scsi_lib.c#L22333333333rdiv
1467e" ue20 "l>20 aaaaaa222hizeof/=r15a33333333rdiv

146mp;&ue20  n>20 d" na drivers/scsi71csi_lib.crdiv

 >1469e" ve20 cl>20 egithe_bo ndaaaaaaaaaaaaaaaaa.c#min_notczero="ng<2>
hr "ddescriptb._le/gth;lna = srblocked"7L182" id="L1478 *     14/7201  70href20ks by zer14L16>146/lass=20ks >20ksaaaaa222hizeof/=r15ac elsesLn2rdiv
, int615ock>1561cases20e=">20k)di> o6<2ate236"lna[0]*256c+"lna[1]c+ 2rblocked"7L182" id="L1478 *     14/72012 70href20="line" n14id=>1467e" ue20="l>20k>>>runsigned L22rt)82r"drive_rdiv
"lna[2]csi_lib.c7L182" id="L1485 *     14d720k3 70href20L211" cla15ib.>1513d="L"20L21>20k_ONSCSI_MLQUEUE_DEBUGGGGGGGGGadiv

"lna[3]csi_lib.c7L182" id="L1485 *     14d720k4 70href20ode=dev1534p; _work)20ode>20khoveLa hreffpef="+cod========fwork)di> o="ng<2>

"lna[4] &" 0x01csi_lib.c7L182" id="L1485 *     14d720k5 70href20557" class="linhref="+c620557>20kkn ef=scsi_lib.c#L223t)822222rdiv
hr "ddescriptb._le/gth;lna = a hrefdriue_loc6<2ate236"lna[6]*256si_lib.c7L182" id="L1485 *     14d720k6 70href206
20k6n ef=scsi_lib.c#L2233333333333333333+"lna[7]csi_lib.c7L182" id="L1485 *     14d720k7 70href2020kaaaaaa222hizeof/=r15ac elses, int6)>20kd" na drivers/scsi71csi_lib.crdiv
)di> o6<2ate236"lna[0]3+<1csi_lib.c7L182" id="L1485 *     14d720k9 70href20223" class="NULL" na  e=20223>20kegithe_bo ndaaaaaaaaaaaaaaaaa.c#min_notczero="ng<2>
"lna[1]csi_lib.c7L182" id="L1485 *     14d7202  70href20is for /a>)#L182r"drive_20is >20isONSCSI_MLQUEUE_DEBUGGGGGGGGGadiv

"lna[2]csi_lib.c7L182" id="L1485 *     14d72021 70href20f="+code=15cla>15hid="Ld20f=">20ihr "ddescriptb._le/gth;lna = a hrefdriue_loc6<2ate236"lna[3]csi_lib.c7L182" id="L1485 *     14d72022 70href20="line" n14id=>1467e" iu20="l>20i>>>runsigned L22rt)82csi_lib.c7L182" id="L1532 *     15=720i3 70href201" clas.c14 class="sreff201" >20i_ONSCSI_MLQUEUE_DEBUGfwork)di> o="ng<2>
_le/gth236_le/gthn ef = drmax_sectorr.chead">_le/gth236_le/gthn efcsi_lib.c7L182" id="L1485 *     14d72024 70href20ode=devic15/a>>1534p; _w20ode>20ihoveLa hreffpcsi_lib.c7L182" id="L1532 *     15=720i5 70href20>, 1535e" n"20>, >20i" 7scsi_lib.c7L182" id="L1486 *     14c720i6 70href20" id="L1614scs>1466e" ue20" i>20i6n ef=scsi_li.c#L>
1467e" ve20="l>20isi7lccsi_lib.c7L182" id="L1532 *     15=720i8 70href20" name="L1466">146mp;&ue20" n>20i0<(ntode=EXPORT_SYMBOb+csc_oid)di> ouclocmprska nse<2>
 >1469e" ve20 cl>20ild236 class="6ine" name="1523 *     15d6203  70href20is for 1534p; _work)20is >20is222syangesooo n clalsoorah/*gt;er7s, int720i    Tueabeabdone::::an API f name="e_loctest_unit_ready - test2ensunitdis readyt;er7s, int7>20i    rguornals of Rrmohe r mid-layal@si_l:  1 *  *     15r720i3 70href20 22020i2222syangesooo n clalsoorahsuheriue@oid20imore ="drivesi_lib.c#L201" id/=r15a@.c#he reqnumb">  whri#he r beib.eiiaiq->er7scsi_lib.c7L182" id="L1569 *     15"720i5 70href20buffmcpyd15lk_>154="li 220buf>20i    Trire    no me_br norno loooooo@eshdt_external: Optional poL>
er to s"+code<_lochense_hdt ib.t;er7scsi_lib.c7L182" id="L1569 *     15"720i6 70href20" class="15#L2>151me="* 20" c>20i    get unb+csctddoRrmr than Rrmolo=scsi_li.c#L>
 ="dsense. Makedsui_lthat this is lleared beib.eipsct->er7scsi_lib.c7L182" id="L1569 *     15"720i7 70href20" name="L1515">151520i2222he reunb+csc_oid *     15r720i8 70href20f">buffle15len>153clas 220f">>20i:::::>>>>>>>>*turns the req-&="L27s, int7146/las 220ks >20ks222he reunb+csc_oid *     15r720k1 70href20e="L149">15ock>1561cas* 20e=">20k    Tueabeabdone::::an API f *gt;er7scsi_lib.c7L182" id="L1575 *     15372042 70href20="L160" c14_li>146mmen 220="L>20k    rintsi_lib.c7L182" id="L1575 *     153720k3 70href2020k3<(ntode=EXPORT_SYMBe_loctest_unit_ready<2>
)Ss/scHhrefn ef=scsi_lib.c#L223rdiv

20khoveLa hreffpef="+cod======"+code=sensegona heata_bufsense_hdt<2>

20k    T, int620k6n ef=scsi_lichar236

, int6151520kaaaaaa222hizeof/=r15arwork)di> oTEST_UNIT_READY0>
 *     14c62048 70href20f">buffle15len>153clas  20f">>20k0<(nt
20kegithe_bo nda="+code=sensegona heata_bufsense_hdt<2>

2022n ef=scsi_liL>
 >1469e" fo20 cl>2021d236 class="6ine" name="1523 *     15d62052 70href20557" class="linhref="+c620557>202>>>runsigned Lnse3rhovequeue_work
202hoveLa hreffpelsesi_lib.c7L182" id="L1485 *     14d72025 70href20buffmcpyd15lk_>154="l> 220buf>202kn ef=scsi_lib.c#L223d236


202" 7scsi_lib.c7L182" id="L15"7 *     15"72027 70href20" name="L1515">1515202aaaaaa222hizeaan clalaurns the req-/*rtry to eat the UNIT_ATTENTION:ensolei_lii_lenoughhri#he r *gt;er7scsi_lib.c7L182" id="L1575 *     15372058 70href20f">buffle15len>153clas  20f">>2020<(nt, int6)di> oue_locka hr "drivers/scsi7l,sfwork)di> ocm20>
)di> oDMA_NONE0>
)di> o223" class=rivesi_lib.c#L20,s0,sa hrefdriue_locushdt<2>
, int615ock>1561cas* 20e=">20k)di> oe_lochense_vali20>
)di> oushdt<2>
146mmen 220="L>20k>>>runsigned L22rt)82r"drfwork)di> oushdt<2>
1463e" * 2020k_ONSCSI_MLQUEUE_DEBUGGGGGGGGGadiv

20khoveLa hreffpc while22rdiv

)di> oushdt<2>
20kkn ef=scsi_lib.c#L223tfwork)di> oushdt<2>
20k" 7scsi_lib.c7L182" id="L15"7 *     15"72067 70href20" name="L1515">151520kaaaaaa222hizeLnse3rhovequeue_work
buffle15len>153clas  20f">>20k0<(nt)di> ocfreerefdriue_locka cfreeta_bufwork)di> oushdt<2>
15ock>1561cas* 20e=">20k1<(ntode=EXPORT_SYMBOb+csc_oid)di> oucloctest_unit_ready<2>
146mmen  20="L>20k" 7s" class="7L182" id="L1533 *     152720k3 70href2020k2222syangesooo n clalsoorah/*gt;er7s, int720kmore ="drivesi_lib.c#L201" id/=r15af=scsi_lib.chet_h"nye - Takedthe ghren *     15r720k5 70href20oid23d236
20k    Trire    no me_br norno loooooo@ei_l:  1 *  *     15r72076 70href20223" class="NULL" na  e=20223>20k    get unb+csctddoRrmr than Rrmolo@h"nye:sh"nye to changesood="L27s, int71467e" no20="l>20k2222he reunb+csc_oid, int7146mp;&ad20" n>20k:::::>>>>>>>>*turns the req-&copt aclalaur ib.c2ensunsuccessful  ra420k2222he reunb+csc_oid *     15r7208  70href20work)rhoveEXPORT_SYM20wor>20wo222he reunb+csc_oid15hid="Ld20f=">20w1   rintsi_lib.c7L182" id="L1575 *     15372082 70href20gu236
20w2<(ntode=EXPORT_SYMBe_loci_lib.chet_h"nye>)Ss/scHhrefn ef=scsi_lib.chet_h"nyeta_bude=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L223rdiv
)Ss/scHhrefn ef=scsi_lib.ch"nyeta_bsegona he" divers"nye>)Ss/scHhrefn ef"nyeta_b1si_lib.c7L182" id="L1486 *     14c72083 70href20223" class="NULL" na  e=20223>20w3   T, int6)Ss/scHhrefn ef=scsi_lib.ch"nyeta_bsegona he" diveroldh"nye>)Ss/scHhrefn eoldh"nyen efcode=sensegkmem_came_locka hr "drivers/scsi7lcsi_lib.c# se_clustes/sc_h"nye>)Ss/scHhrefn ef/sc_h"nyen efcsi_lib.c7L182" id="L1485 *     14d72085 70href20>, 1535e" n"20>, >20w" 7scsi_lib.c7L182" id="L1486 *     14c72086 70href20" id="L1614scs>1466e" n"20" i>20w6n ef=scsi_liLnseib.c# se_clustes"nye>)Ss/scHhrefn ef"nyeta_bcoode=sensegkmem_caoldh"nye>)Ss/scHhrefn eoldh"nyen ef1si_lib.c7L182" id="L1486 *     14c72087 70href20="line" n15id=>574p;&aaa20="l>20waaaaaa222hizeof/=r15a.c#L>
&20*  >20w8 7scsi_lib.c7L182" id="L1486 *     14c72089 70href20g_6142id="L120g_6>20wegithe_bo nda=witchseib.c# se_clustes"nye>)Ss/scHhrefn ef"nyeta_b7s, int63d23620 id>20 in ef=scsi_licasede=sensegkmem_caSDEV_CREATED>)Ss/scHhrefn eSDEV_CREATEDn ef" class="62lass="sref1544 *     15 620 1 70href20189" clas14b.c>149id="L320189>20 )Ss/scHhrefn eoldh"nyen ef1s, int61493e" na201" >20 _ONSCSI_MLQUEUE_DEBUGGGGGGGGGbreakrblocked"7L182" id="L1478 *     14/72094 70href20ode=devic15/a>>1614scs>120ode>20 hoveLa hreffpef="+coddefaul#" class="62lass="sref1544 *     15 620 5 70href20d="L1931557" class="linh20d=">20 kn ef=scsi_lib.c#L223t)822222goto)Ss/scHhrefn eillegaln efcsi_lib.c7L182" id="L1485 *     14d72096 70href20" id="L1615scs>1566d="L"20" i>20 6n ef=scsi_lib.c#L223csi_lib.c7L182" id="L1532 *     15=72097 70href20="line" n14id=>1467e" ue20="l>20 aaaaaa222hizeof/=r15abreakrblocked"7L182" id="L1478 *     14/72098 70href20" name="L1466">146mp;&ue20" n>20 d" na drivers/scsi71csi_lib.cblocked"7L182" id="L1478 *     14/72099 70href20 class="c14"> >1469e" ve20 cl>20 9n ef=scsi_licasede=sensegkmem_caSDEV_RUNNING>)Ss/scHhrefn eSDEV_RUNNINGn ef" class="62lass="sref1544 *     15 621   70href21   7ss="c14"> >1469e" ve21   >210sn ef=scsi_lib.c#L223=witchseib.c# se_clusteoldh"nye>)Ss/scHhrefn eoldh"nyen ef1s, int6149id="L321 89>21 )Ss/scHhrefn eSDEV_CREATEDn ef" class="62lass="sref1544 *     15 621 2 70href21  Argumen14ass>>>>>>>>>>21  A>21 >>>runsigned L22rt)82casede=sensegkmem_caSDEV_OFFLINE0>
1493e" na21 " >21 _ONSCSI_MLQUEUE_DEBUGcasede=sensegkmem_caSDEV_TRANS+csc_OFFLINE0>
>1614scs>121 de>21 hoveLa hreffpef="+codcasede=sensegkmem_caSDEV_QUIESCE0>
21 kn ef=scsi_lib.c#L223casede=sensegkmem_caSDEV_BLOCK>)Ss/scHhrefn eSDEV_BLOCKn ef" class="62lass="sref1544 *     15 621 6 70href21  id="L1615scs>1566d="L"21  i>21 6n ef=scsi_lib.c#L22333333333breakrblocked"7L182" id="L1478 *     14/721 7 70href21 "line" n14id=>1467e" ue21 "l>21 aaaaaa222hizeof/=r15adefaul#" class="62lass="sref1544 *     15 621 8 70href21  name="L1466">146mp;&ue21  n>21 d" na drivers/scsi71csi_lib.cgoto)Ss/scHhrefn eillegaln efcsi_lib.c7L182" id="L1485 *     14d721 9 70href21 class="c14"> >1469e" ve21 cl>21 egithe_bo ndaaaaaaaaacsi_lib.c7L182" id="L1532 *     15=7211  70href21ks by zer14L16>146/lass=21ks >21ksaaaaa222hizeof/=r15abreakrblocked"7L182" id="L1478 *     14/721k1 70href21e="L149">15ock>1561cases21e=">2111d236 class="6ine" name="1523 *     15d62112 70href21="line" n14id=>1467e" ue21="l>21k>>>runsigned casede=sensegkmem_caSDEV_QUIESCE0>
1513d="L"21L21>21k_ONSCSI_MLQUEUE_DEBUG=witchseib.c# se_clusteoldh"nye>)Ss/scHhrefn eoldh"nyen ef1s, int6)Ss/scHhrefn eSDEV_RUNNINGn ef" class="62lass="sref1544 *     15 621k5 70href21557" class="linhref="+c621557>21kkn ef=scsi_lib.c#L223casede=sensegkmem_caSDEV_OFFLINE0>

21k6n ef=scsi_lib.c#L223casede=sensegkmem_caSDEV_TRANS+csc_OFFLINE0>
21kaaaaaa222hizeof/=r15aof/=r15abreakrblocked"7L182" id="L1478 *     14/721k8 70href21a>)#L182r"drive_fnn ef=s21a>)>21kd" na drivers/scsi71cdefaul#" class="62lass="sref1544 *     15 621k9 70href21223" class="NULL" na  e=21223>21kegithe_bo ndaaaaaaaaaaaaaaaaagoto)Ss/scHhrefn eillegaln efcsi_lib.c7L182" id="L1485 *     14d7212  70href21is for /a>)#L182r"drive_21is >21isONSCSI_MLQUEUE_DEBUGcsi_lib.c7L182" id="L1532 *     15=72121 70href21f="+code=15cla>15hid="Ld21f=">21i1467e" iu21="l>212" 7s" class="7L182" id="L1533 *     152721i3 70href211" clas.c14 class="sreff211" >21i_ONSCSI_MLQUEcasede=sensegkmem_caSDEV_OFFLINE0>
>1534p; _w21ode>21ihoveLa hreffpcasede=sensegkmem_caSDEV_TRANS+csc_OFFLINE0>
, 1535e" n"21>, >212kn ef=scsi_lib.c#L223=witchseib.c# se_clusteoldh"nye>)Ss/scHhrefn eoldh"nyen ef1s, int62126n ef=scsi_lib.c#L223casede=sensegkmem_caSDEV_CREATED>)Ss/scHhrefn eSDEV_CREATEDn ef" class="62lass="sref1544 *     15 621i7 70href21="line" n14id=>1467e" ve21="l>212aaaaaa222hizeof/=r15acasede=sensegkmem_caSDEV_RUNNING>)Ss/scHhrefn eSDEV_RUNNINGn ef" class="62lass="sref1544 *     15 621i8 70href21" name="L1466">146mp;&ue21" n>212d" na drivers/scsi71ccasede=sensegkmem_caSDEV_QUIESCE0>
 >1469e" ve21 cl>212egithe_bo ndaaaaaaaaacasede=sensegkmem_caSDEV_BLOCK>)Ss/scHhrefn eSDEV_BLOCKn ef" class="62lass="sref1544 *     15 6213  70href21is for 1534p; _work)21is >213sn ef=scsi_lib.c#L22333333333breakrblocked"7L182" id="L1478 *     14/721i1 70href21557" class="linhref="+c621557>213      14me=>1482d="L"21/a>>213>>>runsigned L22rt)82r"drive_goto)Ss/scHhrefn eillegaln efcsi_lib.c7L182" id="L1485 *     14d721i3 70href21 221213_ONSCSI_MLQUEUE_DEBUGcsi_lib.c7L182" id="L1532 *     15=721i4 70href21si/scsi_l15 154ine"* 21si/>213hoveLa hreffpef="+codbreakrblocked"7L182" id="L1478 *     14/721i5 70href21buffmcpyd15lk_>154="li 221buf>213" 7scsi_lib.c7L182" id="L1486 *     14c721i6 70href21" class="15#L2>151me="* 21" c>2136oveLa hreffpcasede=sensegkmem_caSDEV_BLOCK>)Ss/scHhrefn eSDEV_BLOCKn ef" class="62lass="sref1544 *     15 62137 70href21" name="L1515">1515213aaaaaa222hizeof/=r15a=witchseib.c# se_clusteoldh"nye>)Ss/scHhrefn eoldh"nyen ef1s, int6buffle15len>153clas 221f">>213d" na drivers/scsi71ccasede=sensegkmem_caSDEV_RUNNING>)Ss/scHhrefn eSDEV_RUNNINGn ef" class="62lass="sref1544 *     15 621i9 70href21238" id="15si/>153 cas* 21238>213egithe_bo ndaaaaaaaaacasede=sensegkmem_caSDEV_CREATED_BLOCK>)Ss/scHhrefn eSDEV_CREATED_BLOCKn ef" class="62lass="sref1544 *     15 6214  70href21ks by zer14L16>146/las 221ks >214sn ef=scsi_lib.c#L22333333333breakrblocked"7L182" id="L1478 *     14/721k1 70href21e="L149">15ock>1561cas* 21e=">214146mmen 221="L>214>>>runsigned L22rt)82r"drive_goto)Ss/scHhrefn eillegaln efcsi_lib.c7L182" id="L1485 *     14d721k3 70href21214_ONSCSI_MLQUEUE_DEBUGcsi_lib.c7L182" id="L1532 *     15=721k4 70href21si/scsi_l15 154ine"*c21si/>21khoveLa hreffpef="+codbreakrblocked"7L182" id="L1478 *     14/721k5 70href21buffmcpyd15lk_>154="li* 21buf>214" 7scsi_lib.c7L182" id="L1486 *     14c72146 70href21" class="15#L2>151me="* 21" c>2146oveLa hreffpcasede=sensegkmem_caSDEV_CREATED_BLOCK>)Ss/scHhrefn eSDEV_CREATED_BLOCKn ef" class="62lass="sref1544 *     15 62147 70href21" name="L1515">151521kaaaaaa222hizeof/=r15a=witchseib.c# se_clusteoldh"nye>)Ss/scHhrefn eoldh"nyen ef1s, int6buffle15len>153clas  21f">>214d" na drivers/scsi71ccasede=sensegkmem_caSDEV_CREATED>)Ss/scHhrefn eSDEV_CREATEDn ef" class="62lass="sref1544 *     15 62149 70href21oid23d236
214egithe_bo ndaaaaaaaaaaaaaaaaabreakrblocked"7L182" id="L1478 *     14/7215  70href21223" class="NULL" na  e=21223>215sn ef=scsi_lib.c#L223defaul#" class="62lass="sref1544 *     15 62121 70href21 class="c14"> >1469e" fo21 cl>215)Ss/scHhrefn eillegaln efcsi_lib.c7L182" id="L1485 *     14d72152 70href21557" class="linhref="+c621557>215>>>runsigned L22rt)82csi_lib.c7L182" id="L1532 *     15=72153 70href21work)rhoveEXPORT_SYM21wor>212_ONSCSI_MLQUEUE_DEBUGbreakrblocked"7L182" id="L1478 *     14/72154 70href21ode=devic14/a>>147ine" d21ode>212hoveLblocked"7L182" id="L1478 *     14/72155 70href21buffmcpyd15lk_>154="l> 221buf>212kn ef=scsi_licasede=sensegkmem_caSDEV_CANCE hrefrpin_lna huSDEV_CANCE n ef" class="62lass="sref1544 *     15 62126 70href21" class="15#L2>151me="* 21" c>2156n ef=scsi_lib.c#L223=witchseib.c# se_clusteoldh"nye>)Ss/scHhrefn eoldh"nyen ef1s, int61515215aaaaaa222hizeof/=r15acasede=sensegkmem_caSDEV_CREATED>)Ss/scHhrefn eSDEV_CREATEDn ef" class="62lass="sref1544 *     15 62158 70href21f">buffle15len>153clas  21f">>215d" na drivers/scsi71ccasede=sensegkmem_caSDEV_RUNNING>)Ss/scHhrefn eSDEV_RUNNINGn ef" class="62lass="sref1544 *     15 62159 70href21238" id="15si/>153 cas 221238>212egithe_bo ndaaaaaaaaacasede=sensegkmem_caSDEV_QUIESCE0>
146/las 221ks >21ksn ef=scsi_lib.c#L223casede=sensegkmem_caSDEV_OFFLINE0>
15ock>1561cas* 21e=">21k
146mmen 221="L>21k>>>runsigned L22rt)82casede=sensegkmem_caSDEV_BLOCK>)Ss/scHhrefn eSDEV_BLOCKn ef" class="62lass="sref1544 *     15 62163 70href2121k_ONSCSI_MLQUEUE_DEBUGGGGGGGGGbreakrblocked"7L182" id="L1478 *     14/72164 70href21si/scsi_l15 154ine"*c21si/>216hoveLa hreffpef="+coddefaul#" class="62lass="sref1544 *     15 62165 70href21buffmcpyd15lk_>154="li* 21buf>21kkn ef=scsi_lib.c#L223ttttttttgoto)Ss/scHhrefn eillegaln efcsi_lib.c7L182" id="L1485 *     14d721k6 70href21" class="15#L2>151me="*c21" c>2166n ef=scsi_lib.c#L223csi_lib.c7L182" id="L1532 *     15=72167 70href21" name="L1515">1515216aaaaaa222hizeof/=r15abreakrblocked"7L182" id="L1478 *     14/72168 70href21f">buffle15len>153clas  21f">>2168 7scsi_lib.c7L182" id="L1486 *     14c721k9 70href21238" id="15si/>153 cas 221238>2169n ef=scsi_licasede=sensegkmem_caSDEV_DE hrefrpin_lna huSDEV_DE n ef" class="62lass="sref1544 *     15 6217  70href21ks by zer14L16>146/las 221ks >217sn ef=scsi_lib.c#L223=witchseib.c# se_clusteoldh"nye>)Ss/scHhrefn eoldh"nyen ef1s, int615ock>1561cas* 21e=">217)Ss/scHhrefn eSDEV_CREATEDn ef" class="62lass="sref1544 *     15 62172 70href21="L160" c14_li>146mmen  21="L>217>>>runsigned L22rt)82casede=sensegkmem_caSDEV_RUNNING>)Ss/scHhrefn eSDEV_RUNNINGn ef" class="62lass="sref1544 *     15 621k3 70href21217_ONSCSI_MLQUEUE_DEBUGcasede=sensegkmem_caSDEV_OFFLINE0>
154ine"* 21si/>217hoveLa hreffpef="+codcasede=sensegkmem_caSDEV_TRANS+csc_OFFLINE0>

217kn ef=scsi_lib.c#L223casede=sensegkmem_caSDEV_CANCE hrefrpin_lna huSDEV_CANCE n ef" class="62lass="sref1544 *     15 62176 70href21223" class="NULL" na  e=21223>2176n ef=scsi_lib.c#L22333333333breakrblocked"7L182" id="L1478 *     14/72177 70href21="line" n14id=>1467e" no21="l>217aaaaaa222hizeof/=r15adefaul#" class="62lass="sref1544 *     15 62178 70href21" name="L1466">146mp;&ad21" n>217d" na drivers/scsi71csi_lib.cgoto)Ss/scHhrefn eillegaln efcsi_lib.c7L182" id="L1485 *     14d721k9 70href21557" class="linhref="+c621557>217egithe_bo ndaaaaaaaaacsi_lib.c7L182" id="L1532 *     15=7218  70href21work)rhoveEXPORT_SYM21wor>218saaaaa222hizeof/=r15abreakrblocked"7L182" id="L1478 *     14/72181 70href21f="+code=15cla>15hid="Ld21f=">2181d236 class="6ine" name="1523 *     15d62182 70href21gu236
218>>>runsigned csi_lib.c7L182" id="L1532 *     15=72183 70href21223" class="NULL" na  e=21223>218_ONSCSI_MLQUEa hrefdriue_locme_locka hr "drivers/scsi7lcsi_lib.c# se_clustes/sc_h"nye>)Ss/scHhrefn ef/sc_h"nyen efcode=sensegkmem_cam"nye>)Ss/scHhrefn ef"nyeta_brblocked"7L182" id="L1478 *     14/72184 70href21ode=dev.gu236
21whoveLa hreffp.c#L>
, >21w" 7scsi_lib.c7L182" id="L1486 *     14c72186 70href21" id="L1614scs>1466e" n"21" i>21w6n ef=a hrefdriue_locillegal>)Ss/scHhrefn eillegaln ef" class="62lass="sref1544 *     15 62187 70href21="line" n15id=>574p;&aaa21="l>21waaaaaa222hizee=sensegkmem_caSCSI_LOG_ERROR_RECOVERY0>
&21*  >218d" na drivers/scsi71csi_lib.cSI_MLQUEa hrefdriue_locme_l_printk>)Ss/scHhrefn ef/sc_printkaaaa(a hrefdriue_locKERN_ERR>)Ss/scHhrefn eKERN_ERRaaaa,sa hrefdriue_locue_locka hr "drivers/scsi7l,blocked"7L182" id="L1478 *     14/72189 70href21g_6142id="L121g_6>218egithe_bo ndaaaaaaaaaaaaaaaaai71csi_lib.cSI_MLQUEa reunb+csc_ostring">"Illegalsh"nye transitions%scsi_l%s\n"t;er7sc,blocked"7L182" id="L1478 *     14/7219  70href21 id="L18814csi>3d23621 id>219sn ef=scsi_lib.c#L2233333333333333333daaaaaaaaaUEa hrefdriue_locmcscsi_lib.ch"nye_236)Ss/scHhrefn eoldh"nyen ef1,blocked"7L182" id="L1478 *     14/72191 70href21189" clas14b.c>149id="L321189>21
)Ss/scHhrefn ef"nyeta_b71si_lib.c7L182" id="L1486 *     14c72192 70href21* Argumen14ass>>>>>>>>>>21* A>21 >>>runsigned L22rt)822222222222222222a" id="L27s the req-req->er7lass="21 3 70href211" class=14c#L>1493e" na211" >21 _ONSCSI_MLQUE.c#L>
<-ode=EXPORT_SYMBEINVAf23621 kn efode=EXPORT_SYMBEb+csc_oid)di> oucloci_lib.chet_h"nye>)Ss/scHhrefn ef=scsi_lib.chet_h"nyeta_ba" id="L27s the req-req->er7lass="21 6 70href21" id="L1615scs>1566d="L"21" i>219" 7scsi_lib.c7L182" id="L15"7 *     15"72197 70href21="line" n14id=>1467e" ue21="l>2192222he reunb+csc_oid, int7146mp;&ue21" n>219:::::>>>>>>>>*turns the req-&copt af/sc_evt_emit - emit a t-&gle SCSI, int7 >1469e" ve21 cl>2192222he reunb+csc_oid, int7 >1469e" ve22   >220s222he reunb+csc_oid, int7149id="L322 89>220    Tueabeabdone::::an API f t;er7s, int7, int71493e" na22 " >2202222syangesooo n clalsoorahsugt;er7scsi_lib.c7L182" id="L1575 *     153722 4 70href22 de=devic15/a>>1614scs>122 de>22 hoveLh"nyic voidde=sensegkmem_cam_cacevt_emit>)Ss/scHhrefn ef=scsevt_emitta_bude=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L223rdiv
)Ss/scHhrefn ef=scseve rt;L223rdiv
)Ss/scHhrefn eevtta_basi_lib.c7L182" id="L1575 *     153722 5 70href22 ="L1931557" class="linh22 =">220    T, int61566d="L"22  i>22 6n ef=scsi_liL>
)Ss/scHhrefn eidxn efcodsrblocked"7L182" id="L1478 *     14/722 7 70href22 "line" n14id=>1467e" ue22 "l>22 aaaaaa222hizechar23rdiv
)Ss/scHhrefn eenvpaaaa[3]csi_lib.c7L182" id="L1485 *     14d722 8 70href22  name="L1466">146mp;&ue22  n>2208 7scsi_lib.c7L182" id="L1486 *     14c722 9 70href22 class="c14"> >1469e" ve22 cl>220egithe_bo nda=witchseib.c# se_clusteevt>)Ss/scHhrefn eevtta_bcsi_lib.c# se_clusteevt_typerefdriue_locka evt_typen ef1s, int615ock>1561cases22e=">22k)Ss/scHhrefn eenvpaaaa[a hrefdriue_locidx>)Ss/scHhrefn eidxn ef++]coda reunb+csc_ostring">"SDEV_MEDIA_CHANGE=1"t;er7sccsi_lib.c7L182" id="L1485 *     14d72212 70href22="line" n14id=>1467e" ue22="l>22k>>>runsigned L22rt)82breakrblocked"7L182" id="L1478 *     14/722k3 70href22L211" cla15ib.>1513d="L"22L21>22k_ONSCblocked"7L182" id="L1478 *     14/722k4 70href22ode=dev1534p; _work)22ode>22khoveLa hreffpdefaul#" class="62lass="sref1544 *     15 622k5 70href22557" class="linhref="+c622557>22kkn ef=scsi_lib.c#L223aan clalaurns the req-/*rdo noth ="dugt;er7scsi_lib.c7L182" id="L1575 *     153722k6 70href226
22k6n ef=scsi_lib.c#L223breakrblocked"7L182" id="L1478 *     14/722k7 70href2222kaaaaaa222hizecsi_lib.c7L182" id="L1532 *     15=722k8 70href22a>)#L182r"drive_fnn ef=s22a>)>2218 7scsi_lib.c7L182" id="L1486 *     14c722k9 70href22223" class="NULL" na  e=22223>22kegithe_bo ndardiv
)Ss/scHhrefn eenvpaaaa[a hrefdriue_locidx>)Ss/scHhrefn eidxn ef++]coda hrefdriue_loc223" class=rivesi_lib.c#L20rblocked"7L182" id="L1478 *     14/7222  70href22is for /a>)#L182r"drive_22is >22isONSCblocked"7L182" id="L1478 *     14/72221 70href22f="+code=15cla>15hid="Ld22f=">22i
)Ss/scHhrefn eenvpaaaaa" id="L27s the req-req->er7lass="2222 70href22="line" n14id=>1467e" iu22="l>222" 7s"csi_lib.c7L182" id="L1532 *     15=722i3 70href221" clas.c14 class="sreff221" >222_ONSCblocked"7L182" id="L1478 *     14/72224 70href22ode=devic15/a>>1534p; _w22ode>222more ="drivesi_lib.c#L201" /*gt;er7s, int7, >222    Trire    no me_br norno loooooof/sc_evt_thread -dsend a ueve r for eachs1 *  eve rt;er7s, int7222    get unb+csctddoRrmr than Rrmolo@work: worksde=sensfor f=scsi_lib.c#er7s, int71467e" ve22="l>2222222he reunb+csc_oid, int7146mp;&ue22" n>222:::::>>>>>>>>*turns the req-&copt aDi>>>tchsqueuerreve rs to oleirscscocia/errf=scsi_lib. kobjects="L27s, int7 >1469e" ve22 cl>2222222he reunb+csc_oid *     15r7223  70href22is for 1534p; _work)22is >22is222syangesooo n clalsoorahdugt;er7scsi_lib.c7L182" id="L1575 *     153722i1 70href22557" class="linhref="+c622557>223)Ss/scHhrefn ef=scsevt_threadta_bude=sensegona he" diverwork_de=sen>)Ss/scHhrefn ework_de=sent;L223rdiv
)Ss/scHhrefn eworkta_basi_lib.c7L182" id="L1575 *     153722i2 70href22/a>      14me=>1482d="L"22/a>>223>>>ru, int61463e"> 222223_ONSCSI_MLQUEde=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L223rdiv
154ine"* 22si/>223hoveLa hreffprdiv
)Ss/scHhrefn eLIST_HEADta_bufwork)di> oeve r_list>)Ss/scHhrefn eeve r_listaaaaa" id="L27s the req-req->er7lass="22i5 70href22buffmcpyd15lk_>154="li 222buf>223" 7scsi_lib.c7L182" id="L1486 *     14c722i6 70href22" class="15#L2>151me="* 22" c>2236oveLa hreffprdiv
r_ofocka hr "drivercontaL2>r_ofta_bufwork)di> owork>)Ss/scHhrefn eworkta_b,sde=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L2,sa hrefdriue_loceve r_work>)Ss/scHhrefn eeve r_workaaaaa" id="L27s the req-req->er7lass="22i7 70href22" name="L1515">1515223aaaaa id="L27s the req-req->er7lass="22i8 70href22f">buffle15len>153clas 222f">>223d" na driverswhile2211s, int6)Ss/scHhrefn ef=scseve rt;L223rdiv
)Ss/scHhrefn eevtta_b" id="L27s the req-req->er7lass="224  70href22ks by zer14L16>146/las 222ks >224sn ef=scsi_lib.c#L223de=sensegona he" diverlist_head>)Ss/scHhrefn elist_headt;L223rdiv
)Ss/scHhrefn ethisc#L2,s3rdiv
)Ss/scHhrefn etmpta_b" id="L27s the req-req->er7lass="2241 70href22e="L149">15ock>1561cas* 22e=">224)Ss/scHhrefn eflagsta_b" id="L27s the req-req->er7lass="2242 70href22="L160" c14_li>146mmen 222="L>224" 7s" class="7L182" id="L1533 *     152722k3 70href22224_ONSCSI_MLQUEUE_DEBUGegona he" diverspin_lock_irqsava>)Ss/scHhrefn efpin_lock_irqsavata_bu&"a hrefdriue_locme_locka hr "drivers/scsi7lcsi_lib.c# se_clustelist_lock>)Ss/scHhrefn elist_lockc#L2,sa hrefdriue_locflags>)Ss/scHhrefn eflagsta_ba" id="L27s the req-req->er7lass="22k4 70href22si/scsi_l15 154ine"*c22si/>22khoveLa hreffpef="+codib.c# se_clustelist_splib.cinit>)Ss/scHhrefn elist_splib.cinitta_bu&"a hrefdriue_locme_locka hr "drivers/scsi7lcsi_lib.c# se_clusteeve r_list>)Ss/scHhrefn eeve r_listaaaa, &"a hrefdriue_loceve r_list>)Ss/scHhrefn eeve r_listaaaaa" id="L27s the req-req->er7lass="22k5 70href22buffmcpyd15lk_>154="li* 22buf>224kn ef=scsi_lib.c#L223d236
)Ss/scHhrefn efpin_unlock_irqrestorata_bu&"a hrefdriue_locme_locka hr "drivers/scsi7lcsi_lib.c# se_clustelist_lock>)Ss/scHhrefn elist_lockc#L2,sa hrefdriue_locflags>)Ss/scHhrefn eflagsta_ba" id="L27s the req-req->er7lass="22k6 70href22" class="15#L2>151me="* 22" c>224" 7scsi_lib.c7L182" id="L15"7 *     15"72247 70href22" name="L1515">151522kaaaaaa222hizeof/=r15aLnseib.c# se_clustelist_empty<2>
)Ss/scHhrefn eeve r_listaaaaaasi_lib.c7L182" id="L1575 *     15372248 70href22f">buffle15len>153clas  22f">>224d" na drivers/scsi71cccccccccbreakrblocked"7L182" id="L1478 *     14/72249 70href22oid23d236
224egithblocked"7L182" id="L1478 *     14/7225  70href22223" class="NULL" na  e=22223>225sn ef=scsi_lib.c#L223ib.c# se_clustelist_for_each_safa>)Ss/scHhrefn elist_for_each_safata_bufwork)di> othis>)Ss/scHhrefn ethisc#L2,srdiv
)Ss/scHhrefn etmpta_b, &"a hrefdriue_loceve r_list>)Ss/scHhrefn eeve r_listaaaaas, int6 >1469e" fo22 cl>225)Ss/scHhrefn eevtta_bcoda hrefdriue_loclist_entry<2>
)di> othis>)Ss/scHhrefn ethisc#L2,sde=sensegona he" divers=e_weve r>)Ss/scHhrefn ef=scseve rt;L2,srdiv
)Ss/scHhrefn enfdrta_ba" id="L27s the req-req->er7lass="2252 70href22557" class="linhref="+c622557>225>>>runsigned L22rt)82b.c#L223ib.c# se_clustelist_del>)Ss/scHhrefn elist_delta_bu&"a hrefdriue_locevt>)Ss/scHhrefn eevtta_bcsi_lib.c# se_clustenfdr>)Ss/scHhrefn enfdrta_ba" id="L27s the req-req->er7lass="2253 70href22work)rhoveEXPORT_SYM22wor>222_ONSCSI_MLQUEUE_DEBUGb.c#L223d236
)Ss/scHhrefn ef=scsevt_emitta_burdiv
)Ss/scHhrefn eevtta_ba" id="L27s the req-req->er7lass="2254 70href22ode=devic14/a>>147ine" d22ode>225hoveLa hreffpef="+codb.c#L223d236
)di> oevt>)Ss/scHhrefn eevtta_ba" id="L27s the req-req->er7lass="2255 70href22buffmcpyd15lk_>154="l> 222buf>222kn ef=scsi_lib.c#L223csi_lib.c7L182" id="L1532 *     15=72226 70href22" class="15#L2>151me="* 22" c>2256n ef=scsi_licsi_lib.c7L182" id="L1532 *     15=72227 70href22" name="L1515">1515225aaaaacsi_lib.c7L182" id="L1532 *     15=72228 70href22f">buffle15len>153clas  22f">>2258 7scsi_lib.c7L182" id="L1486 *     14c72259 70href22238" id="15si/>153 cas 222238>2252222he reunb+csc_oid, int715ock>1561cas* 22e=">226    Tueabeabdone::::an API f copt a@ei_l: f=scsi_lib. eve r occurrerrontaer7s, int7146mmen 222="L>226    rguornals of Rrmohe r mid-layal@evt: eve r to sendtaer7s, int71463e" * 222262222syangesooo n clalsoorahsutaer7s, int7226more ="drivesi_lib.c#L201" id/=r15aAssert 1 *  *     15r72265 70href22buffmcpyd15lk_>154="li* 22buf>226    Trire    no me_br norno lgt;er7scsi_lib.c7L182" id="L1575 *     153722k6 70href22" class="15#L2>151me="*c22" c>2266n efvoidde=sensegkmem_cam/sc_evt_sendocka hr "drivers/sc_evt_sendta_bude=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L223rdiv
)Ss/scHhrefn ef=scseve rt;L223rdiv
)Ss/scHhrefn eevtta_basi_lib.c7L182" id="L1575 *     15372267 70href22" name="L1515">1515226aaaaa, int6buffle15len>153clas  22f">>22k0<(nt)Ss/scHhrefn eflagsta_b" id="L27s the req-req->er7lass="22k9 70href22238" id="15si/>153 cas 222238>226egithblocked"7L182" id="L1478 *     14/7227  70href22ks by zer14L16>146/las 222ks >227sn ef#Lns0blocked"7L182" id="L1478 *     14/72271 70href22e="L149">15ock>1561cas* 22e=">227146mmen  22="L>227    rguornals of Rrmohe r miiiiiiiii*sfor pollerri_lib.s.  Neerrto updnye to discriminate between ANt;er7scsi_lib.c7L182" id="L1575 *     15372273 70href2222k2222syangesooo n clalsoorahiiiiiiiii*sand pollerreve rs lgt;er7scsi_lib.c7L182" id="L1575 *     15372274 70href22si/scsi_l15 154ine"* 22si/>227hoveLa hreffpLnse3rhovequeue_worktest_bit>)Ss/scHhrefn etest_bitta_bufwork)di> oevt>)Ss/scHhrefn eevtta_bcsi_lib.c# se_clusteevt_typerefdriue_locka evt_typen ef,sa hrefdriue_locue_locka hr "drivers/scsi7lcsi_lib.c# se_clustesupporterseve rs>)Ss/scHhrefn esupporterseve rsaaaaaas, int62276n ef=scsi_lib.c#L223.c#L>
" id="L27s the req-req->er7lass="2277 70href22="line" n14id=>1467e" no22="l>227aaaaaa222hizecsi_lib.c7L182" id="L1532 *     15=72278 70href22" name="L1466">146mp;&ad22" n>227d" na#endifsi_lib.c7L182" id="L1532 *     15=72279 70href22557" class="linhref="+c622557>227egithblocked"7L182" id="L1478 *     14/7228  70href22work)rhoveEXPORT_SYM22wor>228saaaaa222hizeegona he" diverspin_lock_irqsava>)Ss/scHhrefn efpin_lock_irqsavata_bu&"a hrefdriue_locme_locka hr "drivers/scsi7lcsi_lib.c# se_clustelist_lock>)Ss/scHhrefn elist_lockc#L2,sa hrefdriue_locflags>)Ss/scHhrefn eflagsta_ba" id="L27s the req-req->er7lass="2281 70href22f="+code=15cla>15hid="Ld22f=">228)Ss/scHhrefn elist_add_tailta_bu&"a hrefdriue_locevt>)Ss/scHhrefn eevtta_bcsi_lib.c# se_clustenfdr>)Ss/scHhrefn enfdrta_b, &"a hrefdriue_locme_locka hr "drivers/scsi7lcsi_lib.c# se_clusteeve r_list>)Ss/scHhrefn eeve r_listaaaaa" id="L27s the req-req->er7lass="2282 70href22gu236
228>>>runsigned egona he" divers=hedule_work>)Ss/scHhrefn es=hedule_workta_bu&"a hrefdriue_locme_locka hr "drivers/scsi7lcsi_lib.c# se_clusteeve r_work>)Ss/scHhrefn eeve r_workaaaaa" id="L27s the req-req->er7lass="2283 70href22223" class="NULL" na  e=22223>228_ONSCSI_MLQUEa hrefdriue_locmpin_unlock_irqrestora>)Ss/scHhrefn efpin_unlock_irqrestorata_bu&"a hrefdriue_locme_locka hr "drivers/scsi7lcsi_lib.c# se_clustelist_lock>)Ss/scHhrefn elist_lockc#L2,sa hrefdriue_locflags>)Ss/scHhrefn eflagsta_ba" id="L27s the req-req->er7lass="2284 70href22ode=dev.gu236
228hoveLcsi_lib.c7L182" id="L1532 *     15=72285 70href22>, 1535e" n"22>, >228kn efode=EXPORT_SYMBEb+csc_oid228" 7scsi_lib.c7L182" id="L15"7 *     15"72287 70href22="line" n15id=>574p;&aaa22="l>2282222he reunb+csc_oid, int7&22*  >228:::::>>>>>>>>*turns the req-&copt af/sc_evt_alloc - allocate a news1 *  eve rt;er7s, int72282222he reunb+csc_oid, int73d23622 id>229s222he reunb+csc_oid, int7149id="L322189>229    Tueabeabdone::::an API f t;er7s, int7, int71493e" na221" >2292222syangesooo n clalsoorahsugt;er7scsi_lib.c7L182" id="L1575 *     15372294 70href22ode=devic15/a>>1614scs>122ode>229hoveLh"=sensegona he" divers=e_weve r>)Ss/scHhrefn ef=scseve rt;L223rdiv
)Ss/scHhrefn ef=scsi_lib.ceve rt;L22ib.c# se_clusteevt_typerefdriue_locka evt_typen ef,si_lib.c7L182" id="L1575 *     15372295 70href22d="L1931557" class="linh22d=">22 kn ef=scsi_lib.c#L223t)822222lib.c#L223d236
)Ss/scHhrefn egfp_rt;L22ib.c# se_clustegfpflags>)Ss/scHhrefn egfpflagsta_basi_lib.c7L182" id="L1575 *     15372296 70href22" id="L1615scs>1566d="L"22" i>229" 7sc, int61467e" ue22="l>22 aaaaaa222hizede=sensegona he" divers=e_weve r>)Ss/scHhrefn ef=scseve rt;L223rdiv
)Ss/scHhrefn eevtta_bcoda hrefdriue_lockzallococka hr "driverkzallocta_budizeofude=sensegona he" divers=e_weve r>)Ss/scHhrefn ef=scseve rt;L2),sa hrefdriue_locgfpflags>)Ss/scHhrefn egfpflagsta_ba" id="L27s the req-req->er7lass="2298 70href22" name="L1466">146mp;&ue22" n>22 d" na driversLnse3rhovequeue_workevt>)Ss/scHhrefn eevtta_basi_lib.c7L182" id="L1575 *     15372299 70href22 class="c14"> >1469e" ve22 cl>229egithe_bo ndaaaaaaaaa.c#L>
 >1469e" ve23   >230sONSCblocked"7L182" id="L1478 *     14/723 1 70href23 89" clas14b.c>149id="L323 89>230)Ss/scHhrefn eevtta_bcsi_lib.c# se_clusteevt_typerefdriue_locka evt_typen efcoda hrefdriue_locevt_typerefdriue_locka evt_typen efrblocked"7L182" id="L1478 *     14/723 2 70href23  Argumen14ass>>>>>>>>>>23  A>230>>>runsigned egona he" diverINIT_LIST_HEAD>)Ss/scHhrefn eINIT_LIST_HEADta_bu&"a hrefdriue_locevt>)Ss/scHhrefn eevtta_bcsi_lib.c# se_clustenfdr>)Ss/scHhrefn enfdrta_ba" id="L27s the req-req->er7lass="23 3 70href23 " class=14c#L>1493e" na23 " >230_ONSCblocked"7L182" id="L1478 *     14/723 4 70href23 de=devic15/a>>1614scs>123 de>23 hoveLa hreffpaan clalaurns the req-/*revt_type-specific initialization,sLnsanysugt;er7scsi_lib.c7L182" id="L1575 *     153723 5 70href23 ="L1931557" class="linh23 =">23 kn ef=scsi_li=witchseib.c# se_clusteevt_typerefdriue_locka evt_typen ef1s, int61566d="L"23  i>23 6n ef=scsi_licasede=sensegkmem_caSDEV_EVT_MEDIA_CHANGE0>
1467e" ue23 "l>23 aaaaaa222hizedefaul#" class="62lass="sref1544 *     15 623 8 70href23  name="L1466">146mp;&ue23  n>23 d" na drivers/scsi71caan clalaurns the req-/*rdo noth ="dugt;er7scsi_lib.c7L182" id="L1575 *     153723 9 70href23 class="c14"> >1469e" ve23 cl>23 egithe_bo ndaaaaaaaaabreakrblocked"7L182" id="L1478 *     14/7231  70href23ks by zer14L16>146/lass=23ks >231in ef=scsi_licsi_lib.c7L182" id="L1532 *     15=723k1 70href23e="L149">15ock>1561cases23e=">2311d236 class="6ine" name="1523 *     15d62312 70href23="line" n14id=>1467e" ue23="l>23k>>>runsigned .c#L>
)Ss/scHhrefn eevtta_b" id="L27s the req-req->er7lass="23k3 70href23L211" cla15ib.>1513d="L"23L21>23k_ONSCcsi_lib.c7L182" id="L1532 *     15=723k4 70href23ode=dev1534p; _work)23ode>23khoveLode=EXPORT_SYMBEb+csc_oid231" 7scsi_lib.c7L182" id="L1486 *     14c723k6 70href236
231    get unb+csctddoRrmr tha/*gt;er7s, int72312222he reunb+csc_oid, int7)>231:::::>>>>>>>>*turns the req-&copt a@ei_l: f=scsi_lib. eve r occurrerrontaer7s, int72312222he reunb+csc_oid, int7232s222he reunb+csc_oid, int715hid="Ld23f=">232    Tueabeabdone::::an API f t;er7s, int71467e" iu23="l>232    rguornals of Rrmohe r mid-layalAssert 1 *  *     15r723i3 70href231" clas.c14 class="sreff231" >2322222syangesooo n clalsoorahsugt;er7scsi_lib.c7L182" id="L1575 *     15372324 70href23ode=devic15/a>>1534p; _w23ode>232more voidde=sensegkmem_cam/sc_evt_send_simpleocka hr "drivers/sc_evt_send_simpleta_bude=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L223rdiv
, >232kn ef=scsi_lib.c#L2233333333333enumEa hrefdriue_locmcscsi_lib.ceve r>)Ss/scHhrefn ef=scsi_lib.ceve rt;L22ib.c# se_clusteevt_typerefdriue_locka evt_typen ef,3d236
)Ss/scHhrefn egfp_rt;L22ib.c# se_clustegfpflags>)Ss/scHhrefn egfpflagsta_basi_lib.c7L182" id="L1575 *     153723i6 70href23" id="L1614scs>1466e" ue23" i>232" 7sc, int61467e" ve23="l>232aaaaaa222hizede=sensegona he" divers=e_weve r>)Ss/scHhrefn ef=scseve rt;L223rdiv
)Ss/scHhrefn eevtta_bcoda hrefdriue_locf/sc_evt_allococka hr "drivers/sc_evt_allocta_buib.c# se_clusteevt_typerefdriue_locka evt_typen ef,3d236
)Ss/scHhrefn egfpflagsta_ba" id="L27s the req-req->er7lass="23i8 70href23" name="L1466">146mp;&ue23" n>232d" na driversLnse3rhovequeue_workevt>)Ss/scHhrefn eevtta_bas, int6 >1469e" ve23 cl>232egithe_bo ndaaaaaaaaaa hrefdriue_locf/sc_printk>)Ss/scHhrefn ef/sc_printkaaaa(a hrefdriue_locKERN_ERR>)Ss/scHhrefn eKERN_ERRaaaa,sa hrefdriue_locue_locka hr "drivers/scsi7l,da reunb+csc_ostring">"eve r %rreatensdue to OOM\n"t;er7sc,blocked"7L182" id="L1478 *     14/7233  70href23is for 1534p; _work)23is >233sn ef=scsi_lib.c#L22333333333aaaaa hrefdriue_locevt_typerefdriue_locka evt_typen ef1" id="L27s the req-req->er7lass="23i1 70href23557" class="linhref="+c623557>233
" id="L27s the req-req->er7lass="23i2 70href23/a>      14me=>1482d="L"23/a>>233>>>runsigned csi_lib.c7L182" id="L1532 *     15=723i3 70href23 223233_ONSCblocked"7L182" id="L1478 *     14/723i4 70href23si/scsi_l15 154ine"* 23si/>233hoveLa hreffprdiv
)di> oevt>)Ss/scHhrefn eevtta_ba" id="L27s the req-req->er7lass="23i5 70href23buffmcpyd15lk_>154="li 223buf>233" 7sccsi_lib.c7L182" id="L1532 *     15=723i6 70href23" class="15#L2>151me="* 23" c>2336oveLode=EXPORT_SYMBEb+csc_oid1515233aaaaa id="L27s the req-req->er7lass="23i8 70href23f">buffle15len>153clas 223f">>233:::::>>>>>>>>*turns the req/*gt;er7s, int7, int7, int715ock>1561cas* 23e=">234    Tueabeabdone::::an API f t;er7s, int7146mmen 223="L>234    rguornals of Rrmohe r mid-layalThis works by try ="dto oransitionsto olesSDEV_QUIESCE h"nyetaer7s, int71463e" * 232342222syangesooo n clalsoorahsu-layal(which must be a legalsoransition).  Whensolesspan clis in thisc#er7s, int7234more ="drivesi_lib.c#L201" id/=r15ah"nye, only specialsrequests will be accepted, all oolers willc#er7s, int7234    Trire    no me_br norno loooooobesspferrer.  Sin clspecialsrequests may alsoobesrequeuerrrequests,c#er7s, int7234    get unb+csctddoRrmr than Rrmoloa successful .c#L>
, int715152342222he reunb+csc_oid *     15r72348 70href23f">buffle15len>153clas  23f">>234:::::>>>>>>>>*turns the req-&="L27s, int7, int7235s222he reunb+csc_oid, int7 >1469e" fo23 cl>235    Tueabeabdone::::an API f copt aRc#L>
s zerosLnsunsuccessful or an error Lnsnord="L27s, int7235    rguornals of Rrmohe r midgt;er7scsi_lib.c7L182" id="L1575 *     15372353 70href23work)rhoveEXPORT_SYM23wor>232_ONSCintsi_lib.c7L182" id="L1575 *     15372354 70href23ode=devic14/a>>147ine" d23ode>235hoveLode=EXPORT_SYMBf=scsi_lib.cquiesce>)Ss/scHhrefn ef=scsi_lib.cquiesceta_bude=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L223rdiv
 223buf>235    T, int62356n ef=scsi_liL>
)Ss/scHhrefn eerrta_bcoda hrefdriue_locf=scsi_lib.chet_h"nye>)Ss/scHhrefn ef=scsi_lib.chet_h"nyeta_bua hrefdriue_locue_locka hr "drivers/scsi7l,dawork)di> oSDEV_QUIESCE0>
1515235aaaaaa222hizeLnseib.c# se_clusteerr>)Ss/scHhrefn eerrta_basi_lib.c7L182" id="L1575 *     15372358 70href23f">buffle15len>153clas  23f">>235d" na drivers/scsi71c.c#L>
)Ss/scHhrefn eerrta_b" id="L27s the req-req->er7lass="2329 70href23238" id="15si/>153 cas 223238>235egithblocked"7L182" id="L1478 *     14/7236  70href23ks by zer14L16>146/las 223ks >236saaaaa222hizeegona he" divers *  run_queue>)Ss/scHhrefn ef=scsrun_queueta_bua hrefdriue_locue_locka hr "drivers/scsi7lcsi_lib.c# se_clusterequest_queue>)Ss/scHhrefn erequest_queuen efa" id="L27s the req-req->er7lass="2361 70href23e="L149">15ock>1561cas* 23e=">236
, int6146mmen 223="L>236>>>runsigned L22rt)82ib.c# se_clustemsleep_L>
erruptibleocka hr "drivermsleep_L>
erruptibleta_bu200a" id="L27s the req-req->er7lass="2363 70href23236_ONSCSI_MLQUEUE_DEBUGegona he" divers *  run_queue>)Ss/scHhrefn ef=scsrun_queueta_bua hrefdriue_locue_locka hr "drivers/scsi7lcsi_lib.c# se_clusterequest_queue>)Ss/scHhrefn erequest_queuen efa" id="L27s the req-req->er7lass="2364 70href23si/scsi_l15 154ine"*c23si/>236hoveLa hreffpcsi_lib.c7L182" id="L1532 *     15=72365 70href23buffmcpyd15lk_>154="li* 23buf>236kn ef=scsi_li.c#L>
2366n efcsi_lib.c7L182" id="L1532 *     15=72367 70href23" name="L1515">1515236aaaaaode=EXPORT_SYMBEb+csc_oid)Ss/scHhrefn ef=scsi_lib.cquiesceta_ba" id="L27s the req-req->er7lass="2368 70href23f">buffle15len>153clas  23f">>2368 7scsi_lib.c7L182" id="L1486 *     14c723k9 70href23238" id="15si/>153 cas 223238>2362222he reunb+csc_oid, int7, int715ock>1561cas* 23e=">237    Tueabeabdone::::an API f copt a@ei_l:  1 *  *     15r72372 70href23="L160" c14_li>146mmen  23="L>237    rguornals of Rrmohe r migt;er7s, int71463e" * 2323k2222syangesooo n clalsoorahiccopt aMovessolesspan clfrom quiescerrbacklto runn ="dand .cstartssolet;er7s, int7237more ="drivesi_lib.c#L201" id/=r15aqueuesd="L27s, int7, int7237    get unb+csctddoRrmr than RrmoloMust be callerrwith user context, may sleepd="L27s, int71467e" no23="l>2372222he reunb+csc_oid146mp;&ad23" n>237d" navoidde=sensegkmem_cam_caci_lib.cresume>)Ss/scHhrefn ef=scsi_lib.cresumeta_bude=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L223rdiv
237egith, int615hid="Ld23f=">238    Tueabeabdone::::an API fffffffff* so assume olesh"nye is be ="deanagerrelsewhere22for exampletaer7scsi_lib.c7L182" id="L1575 *     15372382 70href23gu236
238    rguornals of Rrmohe r miiiiiiiii*sspan cldele/errduring suspend)taer7scsi_lib.c7L182" id="L1575 *     15372383 70href23223" class="NULL" na  e=23223>2382222syangesooo n clalsoorahiiiiiiiii*gt;er7scsi_lib.c7L182" id="L1575 *     15372384 70href23ode=dev.gu236
238hoveLa hreffpLnsea hrefdriue_locue_locka hr "drivers/scsi7lcsi_lib.c# se_clustes/sc_h"nye>)Ss/scHhrefn ef/sc_h"nyeoveLa!oda hrefdriue_locSDEV_QUIESCE0>
, >238kn ef=scsi_lib.c#a hrefdriue_locf=scsi_lib.chet_h"nye>)Ss/scHhrefn ef=scsi_lib.chet_h"nyeta_bua hrefdriue_locue_locka hr "drivers/scsi7l,dawork)di> oSDEV_RUNNING0>
2386n ef=scsi_lib.c#L223.c#L>
" id="L27s the req-req->er7lass="2387 70href23="line" n15id=>574p;&aaa23="l>238aaaaaa222hizeegona he" divers *  run_queue>)Ss/scHhrefn ef=scsrun_queueta_bua hrefdriue_locue_locka hr "drivers/scsi7lcsi_lib.c# se_clusterequest_queue>)Ss/scHhrefn erequest_queuen efa" id="L27s the req-req->er7lass="2388 70href23*   rk)Ss/ ef="ng">&23*  >238:::::csi_lib.c7L182" id="L1532 *     15=72389 70href23g_6142id="L123g_6>2382222hede=EXPORT_SYMBEb+csc_oid)Ss/scHhrefn ef=scsi_lib.cresumeta_ba" id="L27s the req-req->er7lass="239  70href23 id="L18814csi>3d23623 id>239sONSCblocked"7L182" id="L1478 *     14/72391 70href23189" clas14b.c>149id="L323189>239    Th"nyic voidblocked"7L182" id="L1478 *     14/72392 70href23* Argumen14ass>>>>>>>>>>23* A>239    rgb.c# se_clustei_lib.cquiesce_fn<2>
)Ss/scHhrefn ef=scsi_lib.c#L223rdiv

1493e" na231" >2392222s, int6239" 7sccsi_lib.c7L182" id="L1532 *     15=72396 70href23" id="L1615scs>1566d="L"23" i>239" 7scsi_lib.c7L182" id="L15"7 *     15"72397 70href23="line" n14id=>1467e" ue23="l>23 aaaaavoidblocked"7L182" id="L1478 *     14/72398 70href23" name="L1466">146mp;&ue23" n>23 d" nardiv
)Ss/scHhrefn ef=scstargetcquiesceta_bude=sensegona he" divers=e_wtarget>)Ss/scHhrefn ef=scstargetc#L223rdiv
)Ss/scHhrefn eftargetc#L2asi_lib.c7L182" id="L1575 *     153723 9 70href23 class="c14"> >1469e" ve23 cl>239egith, int6 >1469e" ve24   >240saaaaa222hizeegona he" diverstargetcfor_each_ork)Ss/scHhrefn eftargetcfor_each_ork)Ss/scHhrefn eftargetc#L2,dawork)di> o223" class=rivesi_lib.c#L20,dawork)di> oi_lib.cquiesce_fn<2>
149id="L324 89>2401493e" na24 " >240_ONSCblocked"7L182" id="L1478 *     14/724 4 70href24 de=devic15/a>>1614scs>124 de>2404   Th"nyic voidblocked"7L182" id="L1478 *     14/724 5 70href24 ="L1931557" class="linh24 =">240kn efode=EXPORT_SYMBi_lib.cresume_fn<2>
)Ss/scHhrefn ef=scsi_lib.c#L223rdiv

1566d="L"24  i>240" 7sc, int61467e" ue24 "l>240aaaaaa222hizeegona he" divers *  i_lib.cresume>)Ss/scHhrefn ef=scsi_lib.cresumeta_burdiv
146mp;&ue24  n>240:::::csi_lib.c7L182" id="L1532 *     15=724 9 70href24 class="c14"> >1469e" ve24 cl>240egithblocked"7L182" id="L1478 *     14/7241  70href24ks by zer14L16>146/lass=24ks >241in efvoidblocked"7L182" id="L1478 *     14/724k1 70href24e="L149">15ock>1561cases24e=">2411d236a hrefdriue_locu=scstargetcresume>)Ss/scHhrefn ef=scstargetcresumeta_bude=sensegona he" divers=e_wtarget>)Ss/scHhrefn ef=scstargetc#L223rdiv
)Ss/scHhrefn eftargetc#L2asi_lib.c7L182" id="L1575 *     15372412 70href24="line" n14id=>1467e" ue24="l>241>>>ru, int61513d="L"24L21>241_ONSCSI_MLQUEa hrefdriue_locmtargetcfor_each_ork)Ss/scHhrefn eftargetcfor_each_ork)Ss/scHhrefn eftargetc#L2,dawork)di> o223" class=rivesi_lib.c#L20,dawork)di> oi_lib.cresume_fn<2>
)24ode>241hoveLcsi_lib.c7L182" id="L1532 *     15=724k5 70href24557" class="linhref="+c624557>241kn efode=EXPORT_SYMBEb+csc_oid)Ss/scHhrefn ef=scstargetcresumeta_ba" id="L27s the req-req->er7lass="24k6 70href246
241" 7scsi_lib.c7L182" id="L15"7 *     15"724k7 70href242412222he reunb+csc_oid, int7)>241:::::>>>>>>>>*turns the req-&c1 *  L>
ernalsi_lib.cblock - L>
ernal functionsto put a
o olesSDEV_BLOCK h"nyetaer7s, int72412222he reunb+csc_oid, int7242s222he reunb+csc_oid, int715hid="Ld24f=">242    Tueabeabdone::::an API f dBlock request made by 1 *  lld's to oemporarily stop allc#er7s, int71467e" iu24="l>242    rguornals of Rrmohe r mid-1 *  id
erruptc#er7s, int72422222syangesooo n clalsoorahsu or normal process contextd="L27s, int7 *     15r72425 70href24>, 1535e" n"24>, >242    Trire    no me_br norno loRc#L>
s zerosLnssuccessful or error Lnsnor="L27s, int7242    get unb+csctddoRrmr than ="L27s, int71467e" ve24="l>2422222he reunb+csc_oid, int7146mp;&ue24" n>242:::::>>>>>>>>*turns the req-&copt aThis rout6">soransitionssolesspan cl
o olesSDEV_BLOCK h"nyetaer7s, int7 >1469e" ve24 cl>2422222he reunb+csc_oid, int7, int7243    Tueabeabdone::::an API f copt aolesspan clwithaf=scsi_lib.cunblock or i_lib.cblock_tmo firesd="L27s, int7>243    rguornals of Rrmohe r midgt;er7scsi_lib.c7L182" id="L1575 *     153724i3 70href24 224243_ONSCintsi_lib.c7L182" id="L1575 *     153724i4 70href24si/scsi_l15 154ine"* 24si/>243hoveLode=EXPORT_SYMBf=scsL>
ernalsi_lib.cblock>)Ss/scHhrefn ef=scsL>
ernalsi_lib.cblockta_bude=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L223rdiv
243    T, int62436n ef=scsi_lide=sensegona he" diverrequest_queue>)Ss/scHhrefn erequest_queuen ef23rdiv
)Ss/scHhrefn eqn ef2oda hrefdriue_locf/scocka hr "drivers/scsi7lcsi_lib.c# se_clusterequest_queue>)Ss/scHhrefn erequest_queuen ef" id="L27s the req-req->er7lass="24i7 70href24" name="L1515">1515243aaaaaa222hizeunsignerrlongsegona he" diverflags>)Ss/scHhrefn eflagsta_b" id="L27s the req-req->er7lass="24i8 70href24f">buffle15len>153clas 224f">>243d" na driversL>
)Ss/scHhrefn eerrta_bcodsrblocked"7L182" id="L1478 *     14/724i9 70href24238" id="15si/>153 cas* 24238>243egithblocked"7L182" id="L1478 *     14/7244  70href24ks by zer14L16>146/las 224ks >244saaaaa222hizeegona he" divererr>)Ss/scHhrefn eerrta_bcoda hrefdriue_locf=scsi_lib.chet_h"nye>)Ss/scHhrefn ef=scsi_lib.chet_h"nyeta_bua hrefdriue_locue_locka hr "drivers/scsi7l,dawork)di> oSDEV_BLOCK0>
15ock>1561cas* 24e=">244)Ss/scHhrefn eerrta_bas, int6146mmen 224="L>244>>>runsigned L22rt)82ib.c# se_clusteerr>)Ss/scHhrefn eerrta_bcoda hrefdriue_locf=scsi_lib.chet_h"nye>)Ss/scHhrefn ef=scsi_lib.chet_h"nyeta_bua hrefdriue_locue_locka hr "drivers/scsi7l,dawork)di> oSDEV_CREATED_BLOCK0>
244_ONSCblocked"7L182" id="L1478 *     14/72444 70href24si/scsi_l15 154ine"*c24si/>244hoveLa hreffpef="+codLnseib.c# se_clusteerr>)Ss/scHhrefn eerrta_basi_lib.c7L182" id="L1575 *     15372445 70href24buffmcpyd15lk_>154="li* 24buf>244kn ef=scsi_lib.c#L22333333333.c#L>
)Ss/scHhrefn eerrta_b" id="L27s the req-req->er7lass="2446 70href24" class="15#L2>151me="* 24" c>2446n ef=scsi_licsi_lib.c7L182" id="L1532 *     15=72447 70href24" name="L1515">1515244aaaaa id="L27s the req-req->er7lass="2448 70href24f">buffle15len>153clas  24f">>244d" na driversean clalaurns the req-/*rt;er7scsi_lib.c7L182" id="L1575 *     15372449 70href24oid23d236
2442222he reunb+csc_oid, int7245s222he reunb+csc_oid >1469e" fo24 cl>245    Tueabeabdone::::an API faaaaaaaa*arequest queue.rt;er7scsi_lib.c7L182" id="L1575 *     15372452 70href24557" class="linhref="+c624557>245    rguornals of Rrmohe r miaaaaaaaa*gt;er7scsi_lib.c7L182" id="L1575 *     15372453 70href24work)rhoveEXPORT_SYM24wor>245_ONSCSI_MLQUEa hrefdriue_locmpin_lock_irqsava>)Ss/scHhrefn efpin_lock_irqsavata_burdiv
)Ss/scHhrefn eqn efcsi_lib.c# se_clustequeue_lock>)Ss/scHhrefn equeue_locksi7l,dawork)di> oflags>)Ss/scHhrefn eflagsta_ba" id="L27s the req-req->er7lass="2454 70href24ode=devic14/a>>147ine" d24ode>245hoveLa hreffprdiv
)Ss/scHhrefn eblk_stop_queueta_burdiv
)Ss/scHhrefn eqn efa" id="L27s the req-req->er7lass="2455 70href24buffmcpyd15lk_>154="l> 224buf>2455ONSCSI_MLQUEa hrefdriue_locmpin_unlock_irqrestora>)Ss/scHhrefn efpin_unlock_irqrestorata_burdiv
)Ss/scHhrefn eqn efcsi_lib.c# se_clustequeue_lock>)Ss/scHhrefn equeue_locksi7l,dawork)di> oflags>)Ss/scHhrefn eflagsta_ba" id="L27s the req-req->er7lass="2456 70href24" class="15#L2>151me="* 24" c>245" 7scsi_lib.c7L182" id="L15"7 *     15"72427 70href24" name="L1515">1515245aaaaaa222hize.c#L>
buffle15len>153clas  24f">>245:::::csi_lib.c7L182" id="L1532 *     15=72429 70href24238" id="15si/>153 cas 224238>2452222hede=EXPORT_SYMBEb+csc_oid
ernalsi_lib.cblock>)Ss/scHhrefn ef=scsL>
ernalsi_lib.cblockta_ba" id="L27s the req-req->er7lass="246  70href24ks by zer14L16>146/las 224ks >246saaaaa id="L27s the req-req->er7lass="2461 70href24e="L149">15ock>1561cas* 24e=">246    Tueabeabdone::::an API /*gt;er7s, int7146mmen 224="L>246    rguornals of Rrmohe r mid-1 * sL>
ernalsi_lib.cunblock - resume a, int71463e" * 242462222syangesooo n clalsoorahsu @ei_l:       span clto resumetaer7s, int7246more ="drivesi_lib.c#L201" id/@new_h"nye: af"nye to setri_lib.s to af
er unblock ="taer7s, int7246    Trire    no me_br norno l="L27s, int7246    get unb+csctddoRrmr than RCallerrby 1 *  lld's orlthesmidlayerrto restart olesspan clqueuetaL27s, int715152462222he reunb+csc_oid
errupt ortaL27s, int7buffle15len>153clas  24f">>246:::::>>>>>>>>*turns the req-&cnormal process contextd="L27s, int7, int7, int715ock>1561cas* 24e=">247    Tueabeabdone::::an API f ="L27s, int7146mmen  24="L>247    rguornals of Rrmohe r migcNotes:       ="L27s, int71463e" * 2424k2222syangesooo n clalsoorahiccopt aThis rout6">soransitionssolesspan cl
o olesSDEV_RUNNING h"nyetaer7s, int7247more ="drivesi_lib.c#L201" id/=r15aorlto one of olesoff  h"nyesa(which must be a legalsoransition)taer7s, int7 *     15r72476 70href24223" class="NULL" na  e=24223>247    get unb+csctddoRrmr than gt;er7scsi_lib.c7L182" id="L1575 *     15372477 70href24="line" n14id=>1467e" no24="l>2472222hintsi_lib.c7L182" id="L1575 *     15372478 70href24" name="L1466">146mp;&ad24" n>247d" nardiv

ernalsi_lib.cunblock>)Ss/scHhrefn ef=scsL>
ernalsi_lib.cunblockta_bude=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L223rdiv
247egithe_bo ndaaaaaaaaaaaaaaaaaaaaaaenumEa hrefdriue_locmcscsi_lib.ch"nye>)Ss/scHhrefn ef=scsi_lib.ch"nyeoveLaa hrefdriue_locnew_h"nye>)Ss/scHhrefn enew_h"nyeta_basi_lib.c7L182" id="L1575 *     1537248  70href24work)rhoveEXPORT_SYM24wor>248saaaa, int615hid="Ld24f=">248)Ss/scHhrefn erequest_queuen ef23rdiv
)Ss/scHhrefn eqn ef2oda hrefdriue_locf/scocka hr "drivers/scsi7lcsi_lib.c# se_clusterequest_queue>)Ss/scHhrefn erequest_queuen ef"a id="L27s the req-req->er7lass="2482 70href24gu236
248>>>runsigned unsignerrlongsegona he" diverflags>)Ss/scHhrefn eflagsta_b" id="L27s the req-req->er7lass="2483 70href24223" class="NULL" na  e=24223>248_ONSCblocked"7L182" id="L1478 *     14/72484 70href24ode=dev.gu236
248hoveLa hreffpueabeabdone::::an API /*t;er7scsi_lib.c7L182" id="L1575 *     15372485 70href24>, 1535e" n"24>, >248    Trire    no me_br norno aaaaaaaa*aTrydto oransitionstless *  span cl
o SDEV_RUNNING orlone of olet;er7scsi_lib.c7L182" id="L1575 *     15372486 70href24" id="L1614scs>1466e" n"24" i>248    get unb+csctddoRrmr thanaaaaaaaa*aoff d h"nyesaand goose olesspan clqueuesLnssuccessfuld="L27s, int7574p;&aaa24="l>2482222he reunb+csc_oid&24*  >248d" na driversLnseea hrefdriue_locue_locka hr "drivers/scsi7lcsi_lib.c# se_clustes/sc_h"nye>)Ss/scHhrefn ef/sc_h"nyeoveLa=oda hrefdriue_locSDEV_BLOCK0>
248egithe_bo ndaaaaaea hrefdriue_locue_locka hr "drivers/scsi7lcsi_lib.c# se_clustes/sc_h"nye>)Ss/scHhrefn ef/sc_h"nyeoveLa=oda hrefdriue_locSDEV_TRANS+csc_OFFLINE0>
3d23624 id>249sn ef=scsi_lib.c#L223a hrefdriue_locue_locka hr "drivers/scsi7lcsi_lib.c# se_clustes/sc_h"nye>)Ss/scHhrefn ef/sc_h"nyeoveLa=aa hrefdriue_locnew_h"nye>)Ss/scHhrefn enew_h"nyeta_b" id="L27s the req-req->er7lass="2491 70href24189" clas14b.c>149id="L324189>249)Ss/scHhrefn ef/sc_h"nyeoveLa=oda hrefdriue_locSDEV_CREATED_BLOCK0>
, int6)Ss/scHhrefn enew_h"nyeta_ba=oda hrefdriue_locSDEV_TRANS+csc_OFFLINE0>
1493e" na241" >249_ONSCSI_MLQUEUE_DEBUGL223a hrefdriue_locnew_h"nye>)Ss/scHhrefn enew_h"nyeta_ba=oda hrefdriue_locSDEV_OFFLINE0>
)Ss/scHhrefn ef/sc_h"nyeoveLa=aa hrefdriue_locnew_h"nye>)Ss/scHhrefn enew_h"nyeta_b" id="L27s the req-req->er7lass="2495 70href24d="L1931557" class="linh24d=">249kn ef=scsi_lib.c#L223else id="L27s the req-req->er7lass="2496 70href24" id="L1615scs>1566d="L"24" i>2496n ef=scsi_lib.c#L223b.c#L223a hrefdriue_locue_locka hr "drivers/scsi7lcsi_lib.c# se_clustes/sc_h"nye>)Ss/scHhrefn ef/sc_h"nyeoveLa=aa hrefdriue_locSDEV_CREATED0>
1467e" ue24="l>249aaaaaa222hize}celsepLnsea hrefdriue_locue_locka hr "drivers/scsi7lcsi_lib.c# se_clustes/sc_h"nye>)Ss/scHhrefn ef/sc_h"nyeoveLa!oda hrefdriue_locSDEV_CANCEf236146mp;&ue24" n>249d" na drivers/scsi71c3a hrefdriue_locue_locka hr "drivers/scsi7lcsi_lib.c# se_clustes/sc_h"nye>)Ss/scHhrefn ef/sc_h"nyeoveLa!oda hrefdriue_locSDEV_OFFLINE0>
 >1469e" ve24 cl>249egithe_bo ndaaaaaaaaa.c#L>
<-ede=EXPORT_SYMBEINVAf236 >1469e" ve25   >250sONSCblocked"7L182" id="L1478 *     14/725 1 70href25 89" clas14b.c>149id="L325 89>250)Ss/scHhrefn efpin_lock_irqsavata_burdiv
)Ss/scHhrefn eqn efcsi_lib.c# se_clustequeue_lock>)Ss/scHhrefn equeue_locksi7l,dawork)di> oflags>)Ss/scHhrefn eflagsta_ba" id="L27s the req-req->er7lass="25 2 70href25  Argumen14ass>>>>>>>>>>25  A>2502a hrmin_notca hrefdriue_locblk_start_queue>)Ss/scHhrefn eblk_start_queueta_burdiv
)Ss/scHhrefn eqn efa" id="L27s the req-req->er7lass="25 3 70href25 " class=14c#L>1493e" na25 " >250_ONSCSI_MLQUEa hrefdriue_locmpin_unlock_irqrestora>)Ss/scHhrefn efpin_unlock_irqrestorata_burdiv
)Ss/scHhrefn eqn efcsi_lib.c# se_clustequeue_lock>)Ss/scHhrefn equeue_locksi7l,dawork)di> oflags>)Ss/scHhrefn eflagsta_ba" id="L27s the req-req->er7lass="25 4 70href25 de=devic15/a>>1614scs>125 de>2504   T id="L27s the req-req->er7lass="25 5 70href25 ="L1931557" class="linh25 =">250kn ef=scsi_li.c#L>
1566d="L"25  i>2506n efcsi_lib.c7L182" id="L1532 *     15=725 7 70href25 "line" n14id=>1467e" ue25 "l>250aaaaaode=EXPORT_SYMBEb+csc_oid
ernalsi_lib.cunblock>)Ss/scHhrefn ef=scsL>
ernalsi_lib.cunblockta_ba" id="L27s the req-req->er7lass="25 8 70href25  name="L1466">146mp;&ue25  n>2508 7scsi_lib.c7L182" id="L1486 *     14c725 9 70href25 class="c14"> >1469e" ve25 cl>250egithh"nyic voidblocked"7L182" id="L1478 *     14/7251  70href25ks by zer14L16>146/lass=25ks >251in efrdiv
)Ss/scHhrefn ei_lib.cblockta_bude=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L223rdiv

15ock>1561cases25e=">2511d236, int61467e" ue25="l>2512a hrmin_notca hrefdriue_locu=scsL>
ernalsi_lib.cblock>)Ss/scHhrefn ef=scsL>
ernalsi_lib.cblockta_burdiv
1513d="L"25L21>251_ONSCcsi_lib.c7L182" id="L1532 *     15=725k4 70href25ode=dev1534p; _work)25ode>2514   T id="L27s the req-req->er7lass="25k5 70href25557" class="linhref="+c625557>251kn efh"nyic intsi_lib.c7L182" id="L1575 *     153725k6 70href256
2516oveLode=EXPORT_SYMBtargetcblock>)Ss/scHhrefn etargetcblockta_bude=sensegona he" diverork)Ss/scHhrefn ei_lib.c#L223rdiv

2512222h, int6)>251d" na driversLnsea hrefdriue_locu=scsLsstargetcork)Ss/scHhrefn ef=scsLsstargetcork251egithe_bo ndaaaaaaaaaa hrefdriue_locftargetcfor_each_ork)Ss/scHhrefn eftargetcfor_each_ork)Ss/scHhrefn eto_5 *  targetta_burdiv
)di> o223" class=rivesi_lib.c#L20,si_lib.c7L182" id="L1575 *     1537252  70href25is for /a>)#L182r"drive_25is >252sn ef=scsi_lib.c#L22333333333aaaa ndaaaaaaaaaa hrefdriue_loci_lib.cblock>)Ss/scHhrefn ei_lib.cblockta_ba" id="L27s the req-req->er7lass="2521 70href25f="+code=15cla>15hid="Ld25f=">252
1467e" iu25="l>252    rcsi_lib.c7L182" id="L1532 *     15=72523 70href251" clas.c14 class="sreff251" >252_ONSCblocked"7L182" id="L1478 *     14/72524 70href25ode=devic15/a>>1534p; _w25ode>252more voidblocked"7L182" id="L1478 *     14/72525 70href25>, 1535e" n"25>, >252kn efode=EXPORT_SYMB5 *  targetcblock>)Ss/scHhrefn ef=scstargetcblockta_bude=sensegona he" diverork)Ss/scHhrefn ei_lib.c#L223rdiv
252" 7sc, int61467e" ve25="l>252aaaaaa222hizeLnseib.c# se_clusteu=scsLsstargetcork)Ss/scHhrefn ef=scsLsstargetcork146mp;&ue25" n>252d" na drivers/scsi71ca hrefdriue_locftargetcfor_each_ork)Ss/scHhrefn eftargetcfor_each_ork)Ss/scHhrefn eto_5 *  targetta_burdiv
)di> o223" class=rivesi_lib.c#L20,si_lib.c7L182" id="L1575 *     15372529 70href25 class="c14"> >1469e" ve25 cl>252egithe_bo ndaaaaaaaaaaaaaaaaaaaaaandaaaaaaaaaa hrefdriue_loci_lib.cblock>)Ss/scHhrefn ei_lib.cblockta_ba" id="L27s the req-req->er7lass="253  70href25is for 1534p; _work)25is >253sn ef=scsi_lielse id="L27s the req-req->er7lass="2531 70href25557" class="linhref="+c625557>2531" na drivers/scsi71ca hrefdriue_loci_lib.cfor_each_child>)Ss/scHhrefn ei_lib.cfor_each_childta_burdiv
)di> o223" class=rivesi_lib.c#L20,dawork)di> otargetcblock>)Ss/scHhrefn etargetcblockta_ba" id="L27s the req-req->er7lass="2532 70href25/a>      14me=>1482d="L"25/a>>253    rcsi_lib.c7L182" id="L1532 *     15=725i3 70href25 225253_ONSCode=EXPORT_SYMBEb+csc_oid)Ss/scHhrefn ef=scstargetcblockta_ba" id="L27s the req-req->er7lass="2534 70href25si/scsi_l15 154ine"* 25si/>2534   T id="L27s the req-req->er7lass="25i5 70href25buffmcpyd15lk_>154="li 225buf>253kn efh"nyic voidblocked"7L182" id="L1478 *     14/725i6 70href25" class="15#L2>151me="* 25" c>2536oveLode=EXPORT_SYMBi_lib.cunblock>)Ss/scHhrefn ei_lib.cunblockta_bude=sensegona he" divers=e_work)Ss/scHhrefn ef=scsi_lib.c#L223rdiv

15152532222h, int6buffle15len>153clas 225f">>253d" na driversrdiv

ernalsi_lib.cunblock>)Ss/scHhrefn ef=scsL>
ernalsi_lib.cunblockta_bua hrefdriue_locue_locka hr "drivers/scsi7l,d*(enumEa hrefdriue_locmcscsi_lib.ch"nye>)Ss/scHhrefn ef=scsi_lib.ch"nyeoveLa*)rdiv

15ock>1561cas* 25e=">254    Th"nyic intsi_lib.c7L182" id="L1575 *     15372542 70href25="L160" c14_li>146mmen 225="L>254    rgb.c# se_clustetargetcunblock>)Ss/scHhrefn etargetcunblockta_bude=sensegona he" diverork)Ss/scHhrefn ei_lib.c#L223rdiv

1463e" * 252542222s, int6254hoveLa hreffpLnsea hrefdriue_locu=scsLsstargetcork)Ss/scHhrefn ef=scsLsstargetcork254kn ef=scsi_lib.c#L223a hrefdriue_locftargetcfor_each_ork)Ss/scHhrefn eftargetcfor_each_ork)Ss/scHhrefn eto_5 *  targetta_burdiv
)di> odata<2>
2546n ef=scsi_lib.c#L223b.c#L223 drivers/scsi71ca hrefdriue_loci_lib.cunblock>)Ss/scHhrefn ei_lib.cunblockta_ba" id="L27s the req-req->er7lass="2547 70href25" name="L1515">1515254aaaaaa222hize.c#L>
buffle15len>153clas  25f">>254:::::csi_lib.c7L182" id="L1532 *     15=72549 70href25oid23d236
254egithblocked"7L182" id="L1478 *     14/7255  70href25223" class="NULL" na  e=25223>255in efvoidblocked"7L182" id="L1478 *     14/72551 70href25 class="c14"> >1469e" fo25 cl>2551d236a hrefdriue_locu=scstargetcunblock>)Ss/scHhrefn ef=scstargetcunblockta_bude=sensegona he" diverork)Ss/scHhrefn ei_lib.c#L223rdiv
)Ss/scHhrefn ef=scsi_lib.ch"nyeoveLaa hrefdriue_locnew_h"nye>)Ss/scHhrefn enew_h"nyeta_basi_lib.c7L182" id="L1575 *     15372552 70href25557" class="linhref="+c625557>255>>>ru, int6255hoveLa hreffpef="+coda hrefdriue_locftargetcfor_each_ork)Ss/scHhrefn eftargetcfor_each_ork)Ss/scHhrefn eto_5 *  targetta_burdiv
)Ss/scHhrefn enew_h"nyeta_b,si_lib.c7L182" id="L1575 *     15372555 70href25buffmcpyd15lk_>154="l> 225buf>255kn ef=scsi_lib.c#L223b.c#L223 drivers/scsi71ca hrefdriue_loci_lib.cunblock>)Ss/scHhrefn ei_lib.cunblockta_ba" id="L27s the req-req->er7lass="2556 70href25" class="15#L2>151me="* 25" c>2556n ef=scsi_lielse id="L27s the req-req->er7lass="2527 70href25" name="L1515">1515255aaaaaa222hize/scsi71ca hrefdriue_loci_lib.cfor_each_child>)Ss/scHhrefn ei_lib.cfor_each_childta_burdiv
)Ss/scHhrefn enew_h"nyeta_b,dawork)di> otargetcunblock>)Ss/scHhrefn etargetcunblockta_ba" id="L27s the req-req->er7lass="2558 70href25f">buffle15len>153clas  25f">>255:::::csi_lib.c7L182" id="L1532 *     15=72529 70href25238" id="15si/>153 cas 225238>2552222hede=EXPORT_SYMBEb+csc_oid)Ss/scHhrefn ef=scstargetcunblockta_ba" id="L27s the req-req->er7lass="256  70href25ks by zer14L16>146/las 225ks >256sONSCblocked"7L182" id="L1478 *     14/72561 70href25e="L149">15ock>1561cas* 25e=">256    Tueabeabdone::::an API /*gt;er7s, int7146mmen 225="L>256    rguornals of Rrmohe r mid-1 * skmap_atomic_sg - findaand atomically mapaan sg-elemntt;er7s, int71463e" * 252562222syangesooo n clalsoorahsu @egl:       -1 atter-gather listt;er7s, int7256more ="drivesi_lib.c#L201" id/@sg_count:   number of segL201s in s"taer7s, int7256    Trire    no me_br norno l @offset:     offset in byyesaL>
o sg, ons.c#L>
, int7256    get unb+csctddoRrmr than R@len:       -byyesa
o map, ons.c#L>
, int715152562222he reunb+csc_oid, int7buffle15len>153clas  25f">>256:::::>>>>>>>>*turns the req-&cRc#L>
s virtual address of olesstart of olesmapped paget;er7scsi_lib.c7L182" id="L1575 *     153725k9 70href25238" id="15si/>153 cas 225238>2562222he reunb+csc_oid2512222h, in2_ R@len:       -byyesa
o map, ons.c#L>
255intsi_lib.c7L182" id="L1575 *     15372478 70href24s, int7 2258s thefpueabeabd 70hrhefpu@new_h"nye: af"nye 30hrhefpu@new_h"nye: af"nye 30hrhefpu@new_h"nbi_lib.cfor_each_childta_burdiv
8s thefpueabc&1_54 oid1515<8s thefpuea>15158s thefpueabc&1_54 oid>>8s thefpuea>>>a hrefdrie_locka hr "driver/scsi7laasi_liber7s, 5nt7255hoveLa hreffof olesoff5 h"nyesa(which must be5a leg57)Ss/scHhrevoidrdiv
8s thefpueai/a>)en 225="L>256    rguornals of Rrmohe r ="dthesmi5layerrto goose olesqueuec5orlth57615scs>1566d="L"23" i>239" 7sc&1_58s thefpueabc&1_54 oiddrdiv
>>8s thefpueaiu">>>4 oid= 06>>abdmpleEXPORT_SYMBEb+csc>>>abdmpleEX4 oid= 0en 225="L>256    rguornals of Rrmohe r      -byye5 *     15372477 70href245"line5752    15372478 70href24s, int7256    rguornals of Rrmohe r "+c1571 * si_lib.cunblock>)Ss/scHhr5fn ef57ef24" name="L1515">1515257sc8s thefpuea57sc_ooid8s thefpuea57sc_ooien 225="L>256    rguornals of Rrmohe r 575 *     lib.c#L223rdiv
, 5*     15375479 70href24557" class="l5nhref57="L27s the req-req->er7laWARN_ON8s thefpueaWARN_ON75 * !drdiv
>24clas  25f">>255:irqs_dis>>24c75 * )men 225="L>256    rguornals of Rrmohe r_SYM24wor>548saaaa, int6)Ss/scHhrefn ei_lib.c#L223rdiv
15ock>1561c_lib.c7L1L18s thefpuea_lib.c7L1L1/*gt;er7s, int7 2258s thefpueabeabd 70hrhefidrdiv
8s thefpueai/a>)    153724 3 70href241" class=14c#L>1495a id="L27s5the req-req->er7lass="5482 758lass="2532 70href25/a>      14me=>14>>>abdmpleEXPORT_SYMBEb+csc>>>abdmpleEX4 oid= drdiv
>>8s thefpueaiu">>>4 oi;LL" na  e=24223>245s222he CdmpleEX" id/ntriessb.c7L182" id="L1575 *     153725k7 70href252485oveLa hreffpueabeabdone::5:an A58q-req->er7lass="2443 70href24>>8s thefpueaiu">>>4 oid+= drdiv
8s thefpueaiu/a>)0kn ef=scsi_li.c#L>
>>>gthPORT_SYMBEb+csc>>>gth_ooien 225="L>256    rguornals of Rrmohe r_br norno 5aaaaaaa*aTrydto oransitio5stles58 hr "drivers/scsi7lcsefn eftargetcfor_eacu">>>8s thefpueaiu">>>4 oidkn ed1515<8s thefpuea>15152ref25ks by zer14L16>146/las 225ks >256i_lib.c7L152" id="L1575 *     15372458 70h582452222hede=EXPORT_SYMBEb+csc_oid)Ss/scHhrefn eftargetcfor_eaunlikely8s thefpueaunlikely/*gt;er7s, int78s thefpueai/a>)La=aa hrefdriue_locL1"> 2258s thefpueabeabd 70hrhe)    153724 3 70href241" class=14c#L>1495a     15375adr>142id="L124g_6>248egi5he_bo5875 *     15372529 70href25 class="c1prevo   15=72562 70hrprevo /*gt;er7s, int7"%s: B7 70hre" i: %zu,@new_h"n+c1>151559  70href24 id="L18814csi53d2365/a>24 id>249sn ef=15372529 70hr" na  e=2422151ing">"/@sg151me%d\n"c7L182"fpu@new_h"nye: af"nye 30hrhefpu@new_h"" clas14b.5>149id="L324189>249>>8s thefpueaiu">>>4 oi,d1515<8s thefpuea>1515 2258s thefpueabeabd 70hrhe)en 225="L>256    rguornals of Rrmohe r  14c62492570href24* Argumen14ass>>>5>>>>>59lass="2532 70href25/a>      14me=>14WARN_ON8s thefpueaWARN_ON75 * 1)en 225="L>256    rguornals of Rrmohe r 24ode>2485249_ONSCSI_MLQUEUE_DEBUGL523a h5efdriue_locnew_h"nye>)ef24f">buffle15len>153SYMBEb+csc_oid146/las 225ks >256ref24d="L1531557" class="linh24d=">259kn e59s=e_work)Ss/scHhrefn ef=scsi_lib.c#L22nyeoveLa=a5 hrefdriue_locSDEV_CREATE50>
245s222he O15151467e" ue25="l>259aaaaaa222hize1515<8s thefpuea>15151515<8s thefpuea>1515      14me=>14>>>abdmpleEXPORT_SYMBEb+csc>>>abdmpleEX4 oid+ drdiv
8s thefpueaiu/a>)0kn ef=scsi_li.c#L>
>1515<8s thefpuea>1515146mp;5ue24"59onerrto SDEV_BLOCK.  Stop olet;er7s, 5ref24 clas5="c14"> >1469e" ve24 cl>259egit593" class="NULL" na  e=24223>245s222he Assumpr724: erroiguous157scs cna " naers/s222hs@"57sc5+ i"sb.c7L182" id="L1575 *     153725k7 70href255250257sc8s thefpuea57sc_ooidhrefdriue_locue_loth_57sc8s thefpueaoth_57sc/*gt;er7s, int78s thefpueaa1_57sc/*gt;er7s, int78s thefpueaiu/a>)), (1515<8s thefpuea>15158s thefpueaPAGE_SHIFThrhe) en 225="L>256    rguornals of Rrmohe 6_lock>)Ss/6cHhrefn equeue_locksi7l,d6work<600aaaaa222hize1515<8s thefpuea>1515256    rguornals of Rrmohe 6"227s the 6e49_ONSCSI_MLQUEUE_DEBUGL6_unlo6k_irqrestorata_" na  e=24223>245s222he B7 70hre"243 " id/ntrys l="L*>1515endnt7>>8s thefpueaiu">>>4 oid= eer7scsi_lib.c7PAGE_SIZE8s thefpueaPAGE_SIZEPf23d-a1515<8s thefpuea>151526e25 "60)Ss/scHhrefn >>8s thefpuea>>>a hr kn edeer7scsi_lib.c74u">>>8s thefpueaiu">>>4 oiefdrie_locka hr "driver/scsi7laasi_li66255aaaaaa>>8s thefpuea>>>a hr = drdiv
>>8s thefpueaiu">>>4 oi;fdrie_locka hr "driver/scsi7laasi_li666/asi/scs6_"line" n14id=>1467e" ue26 req-602452222hede=EXPORT_SYMBEb+csc_oid2508 7scsi_lib.c7L1826 id="60255in efvoidblocked"drdiv
256    rguornals of Rrmohe 6_86mp;&ue26 "c14"> >1469e" ve24 cl>26vers=60  70href25ks by zer14L16>146/las 225ks >256v
15ock>1561cas* ">256    Tueabeabdone::::an /*gt;er7s, int7
255intsi_lib.c7L182" id="L1575 * en 225="L>256    rguornals of Rrmohe 6c7L182" id6"L1575 *     153725k1 70h6ef25e61ly mapaan sg-elemntt;er7s, int72562222syangesooo n clalsoorahsu @egl:       -1 atter-g6Ccsi_lib.c6L182" id="L1532 *     15=625k4 61   15=72564 70href25si/scsi_l15 1un54ine"*c25si/>25rivesi_lib.un54i aefdriue_ * skmap,3 cas 224238ef="+c17L182" id=7L182" id="L1575ooo n clalsoorahsu @egl:       -1 atter-g6Ca_ba" id=6>
154="li* 25buf>25fdri*turns tfdriue_ * skmap_225" nun54it of olesmapped paget;er7scsi_lib.c7L182" id="6targetcblo6kta_bude=sensegona he" di6erork61nt7, int7255intsi_lib.c7un54ine"*c25si//*gt;en:       -byyesa
o mfdri25223>255intsi_fdri4 oiefdrie_locka hr "driver/scsi7laasi_li6L1575 *   6 153725k7 70href25146mp;&ue25" n>252d" na drive6.c7L182" i6="L1575 *     153725k9 706ref25617 70href25 de=devic15/a>>1617un54ine"*c258s thefpuea7un54ine"*c25/*gt;er7s, int7255intsi_fdri4 oieen 225="L>256    rguornals of Rrmohe 6c86mp;&ue26hrefdriue_locftargetcfor_6ach_o61  70href25ks by zer14L16>146/las 225ks >256lass=rives6_lib.c#L20,si_lib.c7L182"6id="L61 70href25e="L149">15ock>1561cas* ">256    Tueabeabdone::::an /*gt;er7s, int7255intsi_lib.c7un54ine"*c25si//*gteen 225="L>256    rguornals of Rrmohe 6478 *     64/72522 70href25="line" n64id=>6467e" 


1origine_ LXR softwarec157a hr 225="L>2http://sourceforge.net/ cojects/lxr">LXR * unityPf236<243 "experi e_ r7248157 225="L>2mailto:lxr@refux.noea>xr@refux.noPf23.
>xr.refux.no kind238ho"n+c1157 225="L>2http://www.redpill-ref co.noeaRedpill Lef co ASPf236< covidess ofLefux errsulic7L1 ="dopera2475 7ser lld&since 1995.