mirror of https://github.com/xemu-project/xemu.git
NBD patches for 2024-11-18
- Eric Blake: Silence qemu-nbd on harmless client port probes -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEccLMIrHEYCkn0vOqp6FrSiUnQ2oFAmc7lg0ACgkQp6FrSiUn Q2qamgf/QJXHzF5koncXvpOC58QXthe1EQlTNqTv9lSz7GNif7UXtkv9RBMMqNEP 7MDY2L9LzlvMdTqXx6dndQot2YG+PSpqLFQxdjf7J3YUK5N6dQ/w4lCVI+tfVfYF DcYva7TBTfSWMByVdqYhnXc1nAn6liJfaaONf80y3wHObUu8T7qkMY/cb5njpjmT YPKyIJO7DX+ZNY5EZkFGntAxPge368nIrBsViYqst8kNWjtr8o2Rzc7fqa6sbBtw 47tiBDP6usBJb2kapOrpmC5zqHlbb56AbrIsTJ4Ge/iUOKrODtmCC4d7WWGSM3DC udaL74DOMgoMfVGjjaX9KW6Wv3/HFw== =DnNy -----END PGP SIGNATURE----- Merge tag 'pull-nbd-2024-11-18' of https://repo.or.cz/qemu/ericb into staging NBD patches for 2024-11-18 - Eric Blake: Silence qemu-nbd on harmless client port probes # -----BEGIN PGP SIGNATURE----- # # iQEzBAABCAAdFiEEccLMIrHEYCkn0vOqp6FrSiUnQ2oFAmc7lg0ACgkQp6FrSiUn # Q2qamgf/QJXHzF5koncXvpOC58QXthe1EQlTNqTv9lSz7GNif7UXtkv9RBMMqNEP # 7MDY2L9LzlvMdTqXx6dndQot2YG+PSpqLFQxdjf7J3YUK5N6dQ/w4lCVI+tfVfYF # DcYva7TBTfSWMByVdqYhnXc1nAn6liJfaaONf80y3wHObUu8T7qkMY/cb5njpjmT # YPKyIJO7DX+ZNY5EZkFGntAxPge368nIrBsViYqst8kNWjtr8o2Rzc7fqa6sbBtw # 47tiBDP6usBJb2kapOrpmC5zqHlbb56AbrIsTJ4Ge/iUOKrODtmCC4d7WWGSM3DC # udaL74DOMgoMfVGjjaX9KW6Wv3/HFw== # =DnNy # -----END PGP SIGNATURE----- # gpg: Signature made Mon 18 Nov 2024 19:31:25 GMT # gpg: using RSA key 71C2CC22B1C4602927D2F3AAA7A16B4A2527436A # gpg: Good signature from "Eric Blake <eblake@redhat.com>" [full] # gpg: aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>" [full] # gpg: aka "[jpeg image of size 6874]" [full] # Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2 F3AA A7A1 6B4A 2527 436A * tag 'pull-nbd-2024-11-18' of https://repo.or.cz/qemu/ericb: nbd-server: Silence server warnings on port probes Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
af4c4fd128
26
nbd/server.c
26
nbd/server.c
|
@ -1150,8 +1150,8 @@ nbd_negotiate_meta_queries(NBDClient *client, Error **errp)
|
|||
* Return:
|
||||
* -errno on error, errp is set
|
||||
* 0 on successful negotiation, errp is not set
|
||||
* 1 if client sent NBD_OPT_ABORT, i.e. on valid disconnect,
|
||||
* errp is not set
|
||||
* 1 if client sent NBD_OPT_ABORT (i.e. on valid disconnect) or never
|
||||
* wrote anything (i.e. port probe); errp is not set
|
||||
*/
|
||||
static coroutine_fn int
|
||||
nbd_negotiate_options(NBDClient *client, Error **errp)
|
||||
|
@ -1175,8 +1175,13 @@ nbd_negotiate_options(NBDClient *client, Error **errp)
|
|||
... Rest of request
|
||||
*/
|
||||
|
||||
if (nbd_read32(client->ioc, &flags, "flags", errp) < 0) {
|
||||
return -EIO;
|
||||
/*
|
||||
* Intentionally ignore errors on this first read - we do not want
|
||||
* to be noisy about a mere port probe, but only for clients that
|
||||
* start talking the protocol and then quit abruptly.
|
||||
*/
|
||||
if (nbd_read32(client->ioc, &flags, "flags", NULL) < 0) {
|
||||
return 1;
|
||||
}
|
||||
client->mode = NBD_MODE_EXPORT_NAME;
|
||||
trace_nbd_negotiate_options_flags(flags);
|
||||
|
@ -1383,8 +1388,8 @@ nbd_negotiate_options(NBDClient *client, Error **errp)
|
|||
* Return:
|
||||
* -errno on error, errp is set
|
||||
* 0 on successful negotiation, errp is not set
|
||||
* 1 if client sent NBD_OPT_ABORT, i.e. on valid disconnect,
|
||||
* errp is not set
|
||||
* 1 if client sent NBD_OPT_ABORT (i.e. on valid disconnect) or never
|
||||
* wrote anything (i.e. port probe); errp is not set
|
||||
*/
|
||||
static coroutine_fn int nbd_negotiate(NBDClient *client, Error **errp)
|
||||
{
|
||||
|
@ -1415,9 +1420,12 @@ static coroutine_fn int nbd_negotiate(NBDClient *client, Error **errp)
|
|||
stq_be_p(buf + 8, NBD_OPTS_MAGIC);
|
||||
stw_be_p(buf + 16, NBD_FLAG_FIXED_NEWSTYLE | NBD_FLAG_NO_ZEROES);
|
||||
|
||||
if (nbd_write(client->ioc, buf, 18, errp) < 0) {
|
||||
error_prepend(errp, "write failed: ");
|
||||
return -EINVAL;
|
||||
/*
|
||||
* Be silent about failure to write our greeting: there is nothing
|
||||
* wrong with a client testing if our port is alive.
|
||||
*/
|
||||
if (nbd_write(client->ioc, buf, 18, NULL) < 0) {
|
||||
return 1;
|
||||
}
|
||||
ret = nbd_negotiate_options(client, errp);
|
||||
if (ret != 0) {
|
||||
|
|
Loading…
Reference in New Issue