On Wed, 30 Oct 2013 18:44:19 -0700 ronnie sahlberg <ronniesahlberg@xxxxxxxxx> wrote: > On Sun, Oct 20, 2013 at 6:34 PM, FUJITA Tomonori > <fujita.tomonori@xxxxxxxxxxxxx> wrote: > > On Sat, 12 Oct 2013 07:38:59 -0700 > > Ronnie Sahlberg <ronniesahlberg@xxxxxxxxx> wrote: > > > >> While RDWR supports all SBC opcodes that TGTD implement SHEEPDOG > >> only supports a subset and lacks the following opcodes: > >> WRITE_VERIFY10/12/16 VERIFY10/12/16 PREFETCH10/16 > >> WRITE_SAME10/16 UNMAP and ORWRITE > >> > >> This allows backends to specify which opcodes it is prepared to process > >> and which commands should fail with invalid op code > >> and allows SHEEPDOG backed LUNs to respond with INVALID_OP_CODE > >> correctly. > >> > >> This is most useful for block devices where we have several different backens > >> and where some backends only support a subset of the commands > >> > >> Signed-off-by: Ronnie Sahlberg <ronniesahlberg@xxxxxxxxx> > >> --- > >> usr/bs.c | 8 ++++++++ > >> usr/bs_rdwr.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ > >> usr/bs_sheepdog.c | 38 ++++++++++++++++++++++++++++++++++++++ > >> usr/scsi.c | 6 ++++++ > >> usr/tgtd.h | 1 + > >> 5 files changed, 104 insertions(+), 0 deletions(-) > > > > Why backend store's bs_cmd_submit cannot return a proper error and > > sbr_rc returns that error to an initiator? > > > It could, but this way it is more explicit which opcodes are > available, and a simple compare of the array between opcodes > makes it easy for non-bs_rdwr backend developers to see the delta > between their backend and rdwr. > > A second reason is for a followup patch. > The followup patch will use this array so that it can prune which > opcodes to report back for the REPORT_SUPPORTED_OPCODE opcode. > So that when you issue that command to a sheepdog LUN you get a > pruned list back that only lists the opcodes that sheepdog supports. I see, thanks. Using the bitmaps is simpler than the array of char if you calculate delta and such? -- To unsubscribe from this list: send the line "unsubscribe stgt" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html