Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: qemu/qemu
base: 494a6a2cf7f7
Choose a base ref
...
head repository: qemu/qemu
compare: 11a629d246e4
Choose a head ref
  • 8 commits
  • 12 files changed
  • 3 contributors

Commits on Sep 22, 2023

  1. iotests: use TEST_IMG_FILE instead of TEST_IMG in _require_large_file

    We need to check that we are able to create large enough file which is
    used as an export base rather than connection URL. Unfortunately, there
    are cases when the TEST_IMG_FILE is not defined. We should fallback to
    TEST_IMG in that case.
    
    This problem has been detected when running
        ./check -nbd 5
    The test should be able to run while it does not.
    
    Signed-off-by: Denis V. Lunev <den@openvz.org>
    CC: Kevin Wolf <kwolf@redhat.com>
    CC: Hanna Reitz <hreitz@redhat.com>
    CC: Eric Blake <eblake@redhat.com>
    CC: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Message-ID: <20230906140917.559129-2-den@openvz.org>
    Tested-by: Eric Blake <eblake@redhat.com>
    Reviewed-by: Eric Blake <eblake@redhat.com>
    Signed-off-by: Eric Blake <eblake@redhat.com>
    Denis V. Lunev authored and ebblake committed Sep 22, 2023
    Copy the full SHA
    0189c27 View commit details
    Browse the repository at this point in the history
  2. iotests: improve 'not run' message for nbd-multiconn test

    The test actually requires Python bindings to libnbd rather than libnbd
    itself. Clarify that inside the message.
    
    Signed-off-by: Denis V. Lunev <den@openvz.org>
    CC: Kevin Wolf <kwolf@redhat.com>
    CC: Hanna Reitz <hreitz@redhat.com>
    CC: Eric Blake <eblake@redhat.com>
    CC: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Message-ID: <20230906140917.559129-3-den@openvz.org>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Eric Blake <eblake@redhat.com>
    Signed-off-by: Eric Blake <eblake@redhat.com>
    Denis V. Lunev authored and ebblake committed Sep 22, 2023
    Copy the full SHA
    71a5655 View commit details
    Browse the repository at this point in the history
  3. nbd: Replace bool structured_reply with mode enum

    The upcoming patches for 64-bit extensions requires various points in
    the protocol to make decisions based on what was negotiated.  While we
    could easily add a 'bool extended_headers' alongside the existing
    'bool structured_reply', this does not scale well if more modes are
    added in the future.  Better is to expose the mode enum added in the
    recent commit bfe04d0 out to a wider use in the code base.
    
    Where the code previously checked for structured_reply being set or
    clear, it now prefers checking for an inequality; this works because
    the nodes are in a continuum of increasing abilities, and allows us to
    touch fewer places if we ever insert other modes in the middle of the
    enum.  There should be no semantic change in this patch.
    
    Signed-off-by: Eric Blake <eblake@redhat.com>
    Message-ID: <20230829175826.377251-20-eblake@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    ebblake committed Sep 22, 2023
    Copy the full SHA
    ac132d0 View commit details
    Browse the repository at this point in the history
  4. nbd/client: Pass mode through to nbd_send_request

    Once the 64-bit headers extension is enabled, the data layout we send
    over the wire for a client request depends on the mode negotiated with
    the server.  Rather than adding a parameter to nbd_send_request, we
    can add a member to struct NBDRequest, since it already does not
    reflect on-wire format.  Some callers initialize it directly; many
    others rely on a common initialization point during
    nbd_co_send_request().  At this point, there is no semantic change.
    
    Signed-off-by: Eric Blake <eblake@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Message-ID: <20230829175826.377251-21-eblake@redhat.com>
    ebblake committed Sep 22, 2023
    Copy the full SHA
    297365b View commit details
    Browse the repository at this point in the history
  5. nbd: Add types for extended headers

    Add the constants and structs necessary for later patches to start
    implementing the NBD_OPT_EXTENDED_HEADERS extension in both the client
    and server, matching recent upstream nbd.git (through commit
    e6f3b94a934).  This patch does not change any existing behavior, but
    merely sets the stage for upcoming patches.
    
    This patch does not change the status quo that neither the client nor
    server use a packed-struct representation for the request header.
    While most of the patch adds new types, there is also some churn for
    renaming the existing NBDExtent to NBDExtent32 to contrast it with
    NBDExtent64, which I thought was a nicer name than NBDExtentExt.
    
    Signed-off-by: Eric Blake <eblake@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Message-ID: <20230829175826.377251-22-eblake@redhat.com>
    ebblake committed Sep 22, 2023
    Copy the full SHA
    d95ffb6 View commit details
    Browse the repository at this point in the history

Commits on Sep 25, 2023

  1. nbd: Prepare for 64-bit request effect lengths

    Widen the length field of NBDRequest to 64-bits, although we can
    assert that all current uses are still under 32 bits: either because
    of NBD_MAX_BUFFER_SIZE which is even smaller (and where size_t can
    still be appropriate, even on 32-bit platforms), or because nothing
    ever puts us into NBD_MODE_EXTENDED yet (and while future patches will
    allow larger transactions, the lengths in play here are still capped
    at 32-bit).  There are no semantic changes, other than a typo fix in a
    couple of error messages.
    
    Signed-off-by: Eric Blake <eblake@redhat.com>
    Message-ID: <20230829175826.377251-23-eblake@redhat.com>
    [eblake: fix assertion bug in nbd_co_send_simple_reply]
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    ebblake committed Sep 25, 2023
    Copy the full SHA
    b257845 View commit details
    Browse the repository at this point in the history
  2. nbd/server: Refactor handling of command sanity checks

    Upcoming additions to support NBD 64-bit effect lengths will add a new
    command flag NBD_CMD_FLAG_PAYLOAD_LEN that needs to be considered in
    our sanity checks of the client's messages (that is, more than just
    CMD_WRITE have the potential to carry a client payload when extended
    headers are in effect).  But before we can start to support that, it
    is easier to first refactor the existing set of various if statements
    over open-coded combinations of request->type to instead be a single
    switch statement over all command types that sets witnesses, then
    straight-line processing based on the witnesses.  No semantic change
    is intended.
    
    Signed-off-by: Eric Blake <eblake@redhat.com>
    Message-ID: <20230829175826.377251-24-eblake@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    ebblake committed Sep 25, 2023
    Copy the full SHA
    8db7e2d View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2023

  1. Merge tag 'pull-nbd-2023-09-25' of https://repo.or.cz/qemu/ericb into…

    … staging
    
    NBD patches through 2023-09-25
    
    - Denis V. Lunev: iotest improvements
    - Eric Blake: further work towards 64-bit NBD extensions
    
    # -----BEGIN PGP SIGNATURE-----
    #
    # iQEzBAABCAAdFiEEccLMIrHEYCkn0vOqp6FrSiUnQ2oFAmUR2MUACgkQp6FrSiUn
    # Q2q6jAf+PT65XzMAhgKvu1vIeMSQqyCocNB2MCOzNp+46uB9bNbPPLQSH2EX+t6p
    # kQfHyHUl4YMi0EqgCfodiewlaUKeMxP3cPWMGYaYZ16uNMOIYL1boreDAcM25rb5
    # P3TV3DAWTWSclUxrkTC2DxAIBPgsPsGG/2daqOMDEdinxlIywCMJDEIHc9gwwd/t
    # 7laz9V1cOW9NbQXrM7eTofJKPKIeqZ+w0kvqrf9HBvZl9CqwHADi7xoz9xP+fN+f
    # 713ED/hwt0FIlixtIm2/8vu7nn09cu6m9NaKsMOomsYg9Z6wU3ctivViG5NLq3MD
    # OOUu51dV8gRRAXAFU5vKb0d93D27zQ==
    # =Ik02
    # -----END PGP SIGNATURE-----
    # gpg: Signature made Mon 25 Sep 2023 15:00:21 EDT
    # 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-2023-09-25' of https://repo.or.cz/qemu/ericb:
      nbd/server: Refactor handling of command sanity checks
      nbd: Prepare for 64-bit request effect lengths
      nbd: Add types for extended headers
      nbd/client: Pass mode through to nbd_send_request
      nbd: Replace bool structured_reply with mode enum
      iotests: improve 'not run' message for nbd-multiconn test
      iotests: use TEST_IMG_FILE instead of TEST_IMG in _require_large_file
    
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Stefan Hajnoczi committed Sep 26, 2023
    Copy the full SHA
    11a629d View commit details
    Browse the repository at this point in the history