提交 3070f69b 编写于 作者: J Jens Axboe

scsi: make sure that scsi_init_shared_tag_map() doesn't overwrite existing map

Right now callers have to check whether scsi_host->bqt is already
set up, it's much cleaner to just have scsi_init_shared_tag_map()
does this check on its own.
Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
上级 1d63e726
......@@ -140,8 +140,18 @@ static inline struct scsi_cmnd *scsi_find_tag(struct scsi_device *sdev, int tag)
*/
static inline int scsi_init_shared_tag_map(struct Scsi_Host *shost, int depth)
{
shost->bqt = blk_init_tags(depth);
return shost->bqt ? 0 : -ENOMEM;
/*
* If the shared tag map isn't already initialized, do it now.
* This saves callers from having to check ->bqt when setting up
* devices on the shared host (for libata)
*/
if (!shost->bqt) {
shost->bqt = blk_init_tags(depth);
if (!shost->bqt)
return -ENOMEM;
}
return 0;
}
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册