From: Pavel Borzenkov <pborzen...@virtuozzo.com> It is unclear what the behaviour of a server should be if it receives an unknown command. Similar uncertainty exists for command flags.
Make it explicit that the server should return EINVAL in all such cases. Signed-off-by: Pavel Borzenkov <pborzen...@virtuozzo.com> Reviewed-by: Roman Kagan <rka...@virtuozzo.com> Signed-off-by: Denis V. Lunev <d...@openvz.org> CC: Wouter Verhelst <w...@uter.be> CC: Eric Blake <ebl...@redhat.com> CC: Alex Bligh <a...@alex.org.uk> --- doc/proto.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/proto.md b/doc/proto.md index d54ed19..036d6d9 100644 --- a/doc/proto.md +++ b/doc/proto.md @@ -512,6 +512,13 @@ return `EINVAL` if it receives a read or trim request including one or more sectors beyond the size of the device. It also SHOULD map the `EDQUOT` and `EFBIG` errors to `ENOSPC`. Finally, it SHOULD return `EPERM` if it receives a write or trim request on a read-only export. + +The server SHOULD return `EINVAL` if it receives an unknown command. + +The server SHOULD return `EINVAL` if it receives an unknown command flag. It +also SHOULD return `EINVAL` if it receives a request with a flag not explicitly +documented as applicable to the given request. + Which error to return in any other case is not specified by the NBD protocol. -- 2.1.4