1. 07 Sep, 2018 13 commits
  2. 18 Aug, 2018 7 commits
  3. 17 Aug, 2018 1 commit
    • Maciej S. Szmigiero's avatar
      nbd-client: don't set unset (zero) timeout when configuring via netlink · f617e49d
      Maciej S. Szmigiero authored
      
      
      When we are operating as a daemon we ignore unset (zero) timeout in
      set_timeout() and don't set it in kernel.
      However, when operating in the netlink mode netlink_configure() will add
      NBD_ATTR_TIMEOUT attribute unconditionally.
      
      This means that in the default case of timeout being unset it was being set
      to zero in the kernel which resulted in it triggering almost immediately
      upon any I/O request.
      
      Fix this by not appending the timeout attribute in netlink_configure() when
      the timeout is unset.
      
      Signed-off-by: default avatarMaciej S. Szmigiero <mail@maciej.szmigiero.name>
      f617e49d
  4. 16 Aug, 2018 2 commits
    • Eric Blake's avatar
      doc: Register qemu namespace for NBD_OPT_SET_META_CONTEXT · e96b311c
      Eric Blake authored
      
      
      The recent qemu 3.0 release added an additional supported context
      namespace to its NBD_OPT_SET_META_CONTEXT implementation, named
      "qemu:".  This serves as a registration of that third-party
      namespace, while pointing to qemu documentation for the
      specification of leaf-names within that namespace (currently just
      a "dirty-bitmap:" sub-namespace that can select a named
      dirty bitmap), and what they represent.  We don't have to track
      the full details of the qemu implementation (especially since
      qemu may add more sub-namespace or bit definitions over time),
      but merely link to qemu documentation that should remain
      up-to-date.
      
      Signed-off-by: default avatarEric Blake <eblake@redhat.com>
      Reviewed-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      e96b311c
    • Eric Blake's avatar
      doc: Permit BLOCK_STATUS reply to extend beyond request · 6e165f59
      Eric Blake authored
      
      
      When the NBD_CMD_BLOCK_STATUS extension was first discussed, the
      idea of having the client's length be a hint was proposed, where
      the server could reply beyond the client's request in order to
      allow for fewer transactions when querying the entire disk. The
      portion beyond the client's original request can only occur in
      the final extent for a given context, and only if the additional
      length matches the type given for the last byte actually requested
      by the client.
      
      In the meantime, qemu 2.12 was released as a first client
      implementation of NBD_CMD_BLOCK_STATUS, which always sends the
      NBD_CMD_FLAG_REQ_ONE flag, and which disconnects from the server
      if the server's length exceeds the client request.  This was
      relaxed for subsequent qemu, but it means that we have to be
      explicit that a server should not send extra length except when
      the client is not limiting its request to exactly one extent.
      
      Furthermore, qemu 3.0 was recently released where the server
      actually relies on this looser specification for its
      qemu:dirty-bitmap:NAME context when the REQ_ONE flag is not used.
      
      Signed-off-by: default avatarEric Blake <eblake@redhat.com>
      6e165f59
  5. 24 Jul, 2018 1 commit
  6. 21 May, 2018 1 commit
    • Vladimir Sementsov-Ogievskiy's avatar
      proto: add xNBD command NBD_CMD_CACHE to the spec · 9378376a
      Vladimir Sementsov-Ogievskiy authored
      
      
      The ability to request an NBD server to cache things locally,
      without also spending time in the client reading what was just
      cached, has proved useful to both the xNBD implementation
      (public), and to a VM restore operation performed by Virtuozzo
      atop qemu (not yet public).  Time to document this functionality,
      rather than calling the command a failed experiment.
      
      The documentation is rather fuzzy, in that it makes no
      requirements on what constitutes a valid cache (a server can
      implement this command as a no-op) and no guarantees that a
      cache will benefit the client (although for a specific server
      implementation, the client will indeed benefit).  But as the
      command has a use in existing implementations, it's better
      to document what we can to prevent future incompatible use
      of the command.  In particular, we can envision the addition
      of command flags to request specific caching behvaiors (perhaps
      copying after posix_fadvise semantics), where a server must
      reject a flag it does not know or cannot honor (in the extreme
      case, a new flag to allow the client to drop a portion of the
      cache must not be misinterpreted by the server that populates
      the cache instead because it ignored an unrecognized flag).
      
      Note that this proposal adds NBD_FLAG_SEND_CACHE which xNBD
      did not use; meanwhile, the command NBD_CMD_CACHE is allowed
      to fail with no visible side effects.  The documentation tries
      to point out interoperability constraints resulting from
      existing servers that understand the command but don't advertise
      it, as well as existing clients that send the command even when
      it is not advertised.
      
      Signed-off-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      Message-Id: <20180326161049.15981-1-vsementsov@virtuozzo.com>
      [eblake: add commit message, add more documentation]
      Signed-off-by: default avatarEric Blake <eblake@redhat.com>
      9378376a
  7. 20 May, 2018 2 commits
  8. 17 May, 2018 2 commits
  9. 30 Apr, 2018 2 commits
  10. 18 Apr, 2018 1 commit
  11. 17 Apr, 2018 1 commit
    • Lars Wendler's avatar
      Don't make gnutls and libnl automagic · 55c225b5
      Lars Wendler authored
      Introduce --without-gnutls and --without-libnl configure options so that
      users can disable gnutls/libnl even if the packages are available on the
      system. The default is unchanged from before this patch. If no
      --with(out)-* option has been given on the command line, the macro looks
      for presence and uses the packages if found.
      55c225b5
  12. 04 Apr, 2018 7 commits
    • Wouter Verhelst's avatar
      Use AS_CASE here, too · cb6e816c
      Wouter Verhelst authored
      cb6e816c
    • Wouter Verhelst's avatar
      Actually do run tlshuge, but allow for a failure · f6d3bb97
      Wouter Verhelst authored
      Disabling tlshuge entirely means we don't test it on Linux either, where
      it does succeed. Rather than doing that, mark it as an expected failure
      on OSX.
      
      We can fix it later, then.
      f6d3bb97
    • Wouter Verhelst's avatar
      Don't fail test suite when syslog is disabled · 33060802
      Wouter Verhelst authored
      We currently fail the test suite if syslog was not enabled at compile
      time. While it can't work, it makes more sense to skip the test than to
      fail it.
      33060802
    • Wouter Verhelst's avatar
      Disable tlshuge for now · d56ca846
      Wouter Verhelst authored
      d56ca846
    • Wouter Verhelst's avatar
      Fix path lookup stuff once more · 6a2f2391
      Wouter Verhelst authored
      Sigh.
      
      realpath is "portable", except not implemented on older versions of
      coreutils, including the one in Ubuntu Trusty :-(
      
      So, default to using realpath (which has the advantage of not requiring
      options anywhere), and fall back to readlink -f if that doesn't exist in
      our path.
      
      If that also fails, then the test suite will fail, but have a nice
      "readlink: -f: invalid option" or some such all over it, pointing to
      what the likely culprit is.
      6a2f2391
    • Wouter Verhelst's avatar
      Fix path lookup stuff · 640dc2d4
      Wouter Verhelst authored
      We actually do need to pass non-symlinked stuff, just can't use readlink for
      it. Use realpath, which is the portable alternative, instead.
      640dc2d4
    • Wouter Verhelst's avatar
      Stop home-growing things · dfee7b18
      Wouter Verhelst authored
      autoconf has a facility for doing this, no need to create custom rules
      in Makefile.am like we were doing. This also takes care of figuring out
      that some systems don't support symlinks, and falling back to hardlinks
      or copies, where necessary.
      dfee7b18