X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=include%2Fscsi%2Fscsi_tcq.h;h=cf4c219c0b5cb9ab758046737b2ca814164b01a0;hb=2b142900784c6e38c8d39fa57d5f95ef08e735d8;hp=c247a28259bc77fa453994b3492a457f8b99bb7c;hpb=9361401eb7619c033e2394e4f9f6d410d6719ac7;p=safe%2Fjmp%2Flinux-2.6 diff --git a/include/scsi/scsi_tcq.h b/include/scsi/scsi_tcq.h index c247a28..cf4c219 100644 --- a/include/scsi/scsi_tcq.h +++ b/include/scsi/scsi_tcq.h @@ -144,5 +144,25 @@ static inline int scsi_init_shared_tag_map(struct Scsi_Host *shost, int depth) return shost->bqt ? 0 : -ENOMEM; } +/** + * scsi_host_find_tag - find the tagged command by host + * @shost: pointer to scsi_host + * @tag: tag of the scsi_cmnd + * + * Notes: + * Only works with tags allocated by the generic blk layer. + **/ +static inline struct scsi_cmnd *scsi_host_find_tag(struct Scsi_Host *shost, + int tag) +{ + struct request *req; + + if (tag != SCSI_NO_TAG) { + req = blk_map_queue_find_tag(shost->bqt, tag); + return req ? (struct scsi_cmnd *)req->special : NULL; + } + return NULL; +} + #endif /* CONFIG_BLOCK */ #endif /* _SCSI_SCSI_TCQ_H */