Re: [PATCH] Add an array that describes which opcodes are supported by the RDWR and SHEEPDOG backends.
ronnie sahlberg <[email protected]>
| Newsgroups | org.kernel.vger.stgt |
|---|---|
| Message-ID | <CAN05THQ0Y0AAaNy619aQbw48325nKZVyRKqE+N+vE+s9hsAdyQ@mail.gmail.com> |
Ping? We need something like an array like this so that we can also update REPORT_SUPPORTED_OPCODES correctly and have this opcode only return the opcodes that the particular backend supports. On Wed, Oct 30, 2013 at 6:44 PM, ronnie sahlberg <[email protected]> wrote: > On Sun, Oct 20, 2013 at 6:34 PM, FUJITA Tomonori > <[email protected]> wrote: >> On Sat, 12 Oct 2013 07:38:59 -0700 >> Ronnie Sahlberg <[email protected]> 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 <[email protected]> >>> --- >>> 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. > > > regards > ronnie sahlberg