[RFC] nvme: Fabrics should use the fctype field for data direction

Sagi Grimberg sagi at grimberg.me
Wed Jul 12 23:55:39 PDT 2017



On 12/07/17 19:58, Jon Derrick wrote:
> Fabrics commands with opcode 0x7F use the fctype field to indicate data
> direction.
> 
> Fixes: eb793e2c ("nvme.h: add NVMe over Fabrics definitions")
> 
> Signed-off-by: Jon Derrick <jonathan.derrick at intel.com>
> ---
> I don't have a setup available to test this,

nvme-loop (with null_blk/loopback/ramdisk) runs everywhere....

  but according to the fabrics spec,
> we should be using fctype. Any write commands would appear to work, including
> Connect, but Property Get and other read commands with opcode 0x7F looks like
> they should fail.
> 
>   include/linux/nvme.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/nvme.h b/include/linux/nvme.h
> index 983975b..7246059 100644
> --- a/include/linux/nvme.h
> +++ b/include/linux/nvme.h
> @@ -1017,7 +1017,7 @@ static inline bool nvme_is_write(struct nvme_command *cmd)
>   	 * Why can't we simply have a Fabrics In and Fabrics out command?
>   	 */
>   	if (unlikely(cmd->common.opcode == nvme_fabrics_command))
> -		return cmd->fabrics.opcode & 1;
> +		return cmd->fabrics.fctype & 1;
>   	return cmd->common.opcode & 1;
>   }

Makes sense,

Reviewed-by: Sagi Grimberg <sai at grmberg.me>

Please test with nvme-loop though..



More information about the Linux-nvme mailing list