diff options
author | Tony Battersby <tonyb@cybernetics.com> | 2007-11-12 10:00:44 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-01-11 18:22:44 -0600 |
commit | 25d7c363f2663fe399e623c9bd819258c9760bdc (patch) | |
tree | c03867708e9f66e236163e81913cdd1c516e9f12 /drivers/scsi/scsi_scan.c | |
parent | f28cd7cf8f696eafe42d1632b5a306fbf784d3cd (diff) | |
download | kernel_goldelico_gta04-25d7c363f2663fe399e623c9bd819258c9760bdc.zip kernel_goldelico_gta04-25d7c363f2663fe399e623c9bd819258c9760bdc.tar.gz kernel_goldelico_gta04-25d7c363f2663fe399e623c9bd819258c9760bdc.tar.bz2 |
[SCSI] move single_lun flag from scsi_device to scsi_target
Some SCSI tape medium changers that need the BLIST_SINGLELUN flag have
the medium changer at one LUN and the tape drive at a different LUN.
The inquiry string of the tape drive may be different from that of the
medium changer. In order for single_lun to be effective, every
scsi_device under a given scsi_target must have it set. This means that
there needs to be a blacklist entry for BOTH the medium changer AND the
tape drive, which is impractical because some medium changers may be
paired with a variety of different tape drive models. It makes more
sense to put the single_lun flag in scsi_target instead of scsi_device,
which causes every device at a given target ID to inherit the single_lun
flag from one LUN. This makes it possible to blacklist just the medium
changer and not the tape drive.
Signed-off-by: Tony Battersby <tonyb@cybernetics.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/scsi_scan.c')
-rw-r--r-- | drivers/scsi/scsi_scan.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 7e8b204..ada72af 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c @@ -865,7 +865,7 @@ static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result, sdev->no_start_on_add = 1; if (*bflags & BLIST_SINGLELUN) - sdev->single_lun = 1; + scsi_target(sdev)->single_lun = 1; sdev->use_10_for_rw = 1; |