[Stgt-devel] [PATCH] Move device type to LUN
Pete Wyckoff
pw
Sat Jun 9 19:18:26 CEST 2007
hare at suse.de wrote on Tue, 05 Jun 2007 15:38 +0200:
> This patch moves the device type down to the LUN structure.
> And in doing so we now also have the proper peripheral device
> type and peripheral device qualifier attributes for the INQUIRY
> data.
Makes sense to me too.
> One thing puzzles me, though: do we support commands with no
> LUN attached to it? IE is it valid to have 'cmd->dev == NULL'?
> If so: where is the point here? If that's our handling of a
> non-existing LUN 0 we should rather add a proper LUN 0 and
> treat cmd->dev == NULL as an error case ...
In the SCSI model, every device must have at least one LUN for
handling REPORT LUNS and a couple other commands. It is addressed
as LUN 0 or using the "well-known" LUN for the command. In the stgt
abstraction, though, there is no magic LUN like this. Instead
things like spc_inqury use cmd->dev == NULL to handle this case.
Perhaps it is reasonable to create a special device for these
commands. Up in target.c, you could assign cmd->dev to target->dev,
where that is the special device, paralleling the way that
target->cmd_queue is used. As a side effect, lots of "if (cmd->dev)
... else ILLEGAL_REQUEST" clauses can be removed from device code
too.
-- Pete
More information about the stgt
mailing list