[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

		-- Pete

More information about the stgt mailing list