Re: [PATCH] Add an array that describes which opcodes are supported by the RDWR and SHEEPDOG backends.

FUJITA Tomonori <[email protected]>
Newsgroups org.kernel.vger.stgt
Message-ID <[email protected]>
On Wed, 30 Oct 2013 18:44:19 -0700
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.

I see, thanks. Using the bitmaps is simpler than the array of char if
you calculate delta and such?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.