11.01.2018 22:54, Eric Blake wrote:
On 01/11/2018 11:55 AM, Vladimir Sementsov-Ogievskiy wrote:
11.01.2018 02:08, Eric Blake wrote:
From: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com>

Instead of passing currently negotiating option and its length to
many of negotiation functions let's just store them on NBDClient
struct to be state-variables of negotiation phase.

This unifies semantics of negotiation functions and allows
tracking changes of remaining option length in future patches.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Message-Id: <20171122101958.17065-2-vsement...@virtuozzo.com>
[eblake: rebase, commit message tweak, assert !optlen after
negotiation completes]
Signed-off-by: Eric Blake <ebl...@redhat.com>
---
   nbd/server.c | 168
+++++++++++++++++++++++++++++------------------------------
   1 file changed, 84 insertions(+), 84 deletions(-)
@@ -1707,6 +1706,7 @@ static coroutine_fn void
nbd_co_client_start(void *opaque)
           return;
       }

+    assert(!client->optlen);

hmm, should not it be at the end of nbd_negotiate() ? Looks OK anyway.
Sure, I'll squash this in, for no real change in behavior:

diff --git i/nbd/server.c w/nbd/server.c
index c22d5e6ecf..3fd145592e 100644
--- i/nbd/server.c
+++ w/nbd/server.c
@@ -902,6 +902,7 @@ static coroutine_fn int nbd_negotiate(NBDClient
*client, Error **errp)
          }
      }

+    assert(!client->optlen);
      trace_nbd_negotiate_success();

      return 0;
@@ -1726,7 +1727,6 @@ static coroutine_fn void nbd_co_client_start(void
*opaque)
          return;
      }

-    assert(!client->optlen);
      nbd_client_receive_next_request(client);
  }





or, even better, in nbd_negotiate_options. and you actually do it in 5/6.


--
Best regards,
Vladimir


Reply via email to