• D
    sg: add SG_FLAG_Q_AT_TAIL flag · 16070cc1
    Douglas Gilbert 提交于
    When the SG_IO ioctl was copied into the block layer and
    later into the bsg driver, subtle differences emerged.
    
    One difference is the way injected commands are queued through
    the block layer (i.e. this is not SCSI device queueing nor SATA
    NCQ). Summarizing:
       - SG_IO in the block layer: blk_exec*(at_head=false)
       - sg SG_IO: at_head=true
       - bsg SG_IO: at_head=true
    
    Some time ago Boaz Harrosh introduced a sg v4 flag called
    BSG_FLAG_Q_AT_TAIL to override the bsg driver default.
    This patch does the equivalent for the sg driver.
    
    ChangeLog:
         Introduce SG_FLAG_Q_AT_TAIL flag to cause commands
         to be injected into the block layer with
         at_head=false.
    Signed-off-by: NDouglas Gilbert <dgilbert@interlog.com>
    Reviewed-by: NMike Christie <michaelc@cs.wisc.edu>
    Reviewed-by: NEwan D. Milne <emilne@redhat.com>
    Signed-off-by: NChristoph Hellwig <hch@lst.de>
    16070cc1
sg.c 70.3 KB