New upstream version 1.13.9.
This commit is contained in:
parent
c2efe7d099
commit
52cdc4fe66
@ -1,266 +0,0 @@
|
|||||||
From d5b6da9be6f8009a334da72469072b35fe435e70 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Eric Blake <eblake@redhat.com>
|
|
||||||
Date: Wed, 14 Aug 2019 18:59:13 -0500
|
|
||||||
Subject: [PATCH] nbd: Another libnbd version bump
|
|
||||||
|
|
||||||
The 0.9.8 release breaks API, requiring a number of changes:
|
|
||||||
- Use symbolic constants instead of magic numbers/open-coded strings
|
|
||||||
(well, the string for "base:allocation" was present before this
|
|
||||||
libnbd bump)
|
|
||||||
- Change callbacks to drop the valid_flag parameter
|
|
||||||
- Add _is to nbd_read_only call
|
|
||||||
- Drop the _callback suffix on nbd_aio_FOO calls
|
|
||||||
- Add a struct for managing callback/user_data at once
|
|
||||||
|
|
||||||
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
||||||
---
|
|
||||||
configure.ac | 4 +--
|
|
||||||
plugins/nbd/nbd.c | 85 +++++++++++++++++++++--------------------------
|
|
||||||
README | 2 +-
|
|
||||||
3 files changed, 41 insertions(+), 50 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index ee14516..0b54c00 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -721,12 +721,12 @@ AC_ARG_WITH([libnbd],
|
|
||||||
[],
|
|
||||||
[with_libnbd=check])
|
|
||||||
AS_IF([test "$with_libnbd" != "no"],[
|
|
||||||
- PKG_CHECK_MODULES([LIBNBD], [libnbd >= 0.9.6],[
|
|
||||||
+ PKG_CHECK_MODULES([LIBNBD], [libnbd >= 0.9.8],[
|
|
||||||
AC_SUBST([LIBNBD_CFLAGS])
|
|
||||||
AC_SUBST([LIBNBD_LIBS])
|
|
||||||
AC_DEFINE([HAVE_LIBNBD],[1],[libnbd found at compile time.])
|
|
||||||
],
|
|
||||||
- [AC_MSG_WARN([libnbd >= 0.9.6 not found, nbd plugin will be crippled])])
|
|
||||||
+ [AC_MSG_WARN([libnbd >= 0.9.8 not found, nbd plugin will be crippled])])
|
|
||||||
])
|
|
||||||
AM_CONDITIONAL([HAVE_LIBNBD], [test "x$LIBNBD_LIBS" != "x"])
|
|
||||||
|
|
||||||
diff --git a/plugins/nbd/nbd.c b/plugins/nbd/nbd.c
|
|
||||||
index f11e54d..09c8891 100644
|
|
||||||
--- a/plugins/nbd/nbd.c
|
|
||||||
+++ b/plugins/nbd/nbd.c
|
|
||||||
@@ -62,7 +62,7 @@ struct transaction {
|
|
||||||
sem_t sem;
|
|
||||||
uint32_t early_err;
|
|
||||||
uint32_t err;
|
|
||||||
- struct nbdkit_extents *extents;
|
|
||||||
+ nbd_completion_callback cb;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The per-connection handle */
|
|
||||||
@@ -160,11 +160,12 @@ nbdplug_config (const char *key, const char *value)
|
|
||||||
if (strcasecmp (value, "require") == 0 ||
|
|
||||||
strcasecmp (value, "required") == 0 ||
|
|
||||||
strcasecmp (value, "force") == 0)
|
|
||||||
- tls = 2;
|
|
||||||
+ tls = LIBNBD_TLS_REQUIRE;
|
|
||||||
else {
|
|
||||||
- tls = nbdkit_parse_bool (value);
|
|
||||||
- if (tls == -1)
|
|
||||||
+ r = nbdkit_parse_bool (value);
|
|
||||||
+ if (r == -1)
|
|
||||||
exit (EXIT_FAILURE);
|
|
||||||
+ tls = r ? LIBNBD_TLS_ALLOW : LIBNBD_TLS_DISABLE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (strcmp (key, "tls-certificates") == 0) {
|
|
||||||
@@ -245,8 +246,9 @@ nbdplug_config_complete (void)
|
|
||||||
export = "";
|
|
||||||
|
|
||||||
if (tls == -1)
|
|
||||||
- tls = tls_certificates || tls_verify >= 0 || tls_username || tls_psk;
|
|
||||||
- if (tls > 0) {
|
|
||||||
+ tls = (tls_certificates || tls_verify >= 0 || tls_username || tls_psk)
|
|
||||||
+ ? LIBNBD_TLS_ALLOW : LIBNBD_TLS_DISABLE;
|
|
||||||
+ if (tls != LIBNBD_TLS_DISABLE) {
|
|
||||||
struct nbd_handle *nbd = nbd_create ();
|
|
||||||
|
|
||||||
if (!nbd) {
|
|
||||||
@@ -345,23 +347,12 @@ nbdplug_reader (void *handle)
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
-/* Prepare for a transaction. */
|
|
||||||
-static void
|
|
||||||
-nbdplug_prepare (struct transaction *trans)
|
|
||||||
-{
|
|
||||||
- memset (trans, 0, sizeof *trans);
|
|
||||||
- if (sem_init (&trans->sem, 0, 0))
|
|
||||||
- assert (false);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
+/* Callback used at end of a transaction. */
|
|
||||||
static int
|
|
||||||
-nbdplug_notify (unsigned valid_flag, void *opaque, int *error)
|
|
||||||
+nbdplug_notify (void *opaque, int *error)
|
|
||||||
{
|
|
||||||
struct transaction *trans = opaque;
|
|
||||||
|
|
||||||
- if (!(valid_flag & LIBNBD_CALLBACK_VALID))
|
|
||||||
- return 0;
|
|
||||||
-
|
|
||||||
/* There's a possible race here where trans->cookie has not yet been
|
|
||||||
* updated by nbdplug_register, but it's only an informational
|
|
||||||
* message.
|
|
||||||
@@ -376,6 +367,17 @@ nbdplug_notify (unsigned valid_flag, void *opaque, int *error)
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* Prepare for a transaction. */
|
|
||||||
+static void
|
|
||||||
+nbdplug_prepare (struct transaction *trans)
|
|
||||||
+{
|
|
||||||
+ memset (trans, 0, sizeof *trans);
|
|
||||||
+ if (sem_init (&trans->sem, 0, 0))
|
|
||||||
+ assert (false);
|
|
||||||
+ trans->cb.callback = nbdplug_notify;
|
|
||||||
+ trans->cb.user_data = trans;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* Register a cookie and kick the I/O thread. */
|
|
||||||
static void
|
|
||||||
nbdplug_register (struct handle *h, struct transaction *trans, int64_t cookie)
|
|
||||||
@@ -466,7 +468,7 @@ nbdplug_open_handle (int readonly)
|
|
||||||
goto err;
|
|
||||||
if (nbd_set_export_name (h->nbd, export) == -1)
|
|
||||||
goto err;
|
|
||||||
- if (nbd_add_meta_context (h->nbd, "base:allocation") == -1)
|
|
||||||
+ if (nbd_add_meta_context (h->nbd, LIBNBD_CONTEXT_BASE_ALLOCATION) == -1)
|
|
||||||
goto err;
|
|
||||||
if (nbd_set_tls (h->nbd, tls) == -1)
|
|
||||||
goto err;
|
|
||||||
@@ -570,7 +572,7 @@ static int
|
|
||||||
nbdplug_can_write (void *handle)
|
|
||||||
{
|
|
||||||
struct handle *h = handle;
|
|
||||||
- int i = nbd_read_only (h->nbd);
|
|
||||||
+ int i = nbd_is_read_only (h->nbd);
|
|
||||||
|
|
||||||
if (i == -1) {
|
|
||||||
nbdkit_error ("failure to check readonly flag: %s", nbd_get_error ());
|
|
||||||
@@ -674,7 +676,7 @@ static int
|
|
||||||
nbdplug_can_extents (void *handle)
|
|
||||||
{
|
|
||||||
struct handle *h = handle;
|
|
||||||
- int i = nbd_can_meta_context (h->nbd, "base:allocation");
|
|
||||||
+ int i = nbd_can_meta_context (h->nbd, LIBNBD_CONTEXT_BASE_ALLOCATION);
|
|
||||||
|
|
||||||
if (i == -1) {
|
|
||||||
nbdkit_error ("failure to check extents ability: %s", nbd_get_error ());
|
|
||||||
@@ -693,8 +695,8 @@ nbdplug_pread (void *handle, void *buf, uint32_t count, uint64_t offset,
|
|
||||||
|
|
||||||
assert (!flags);
|
|
||||||
nbdplug_prepare (&s);
|
|
||||||
- nbdplug_register (h, &s, nbd_aio_pread_callback (h->nbd, buf, count, offset,
|
|
||||||
- nbdplug_notify, &s, 0));
|
|
||||||
+ nbdplug_register (h, &s, nbd_aio_pread (h->nbd, buf, count, offset,
|
|
||||||
+ s.cb, 0));
|
|
||||||
return nbdplug_reply (h, &s);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -709,8 +711,8 @@ nbdplug_pwrite (void *handle, const void *buf, uint32_t count, uint64_t offset,
|
|
||||||
|
|
||||||
assert (!(flags & ~NBDKIT_FLAG_FUA));
|
|
||||||
nbdplug_prepare (&s);
|
|
||||||
- nbdplug_register (h, &s, nbd_aio_pwrite_callback (h->nbd, buf, count, offset,
|
|
||||||
- nbdplug_notify, &s, f));
|
|
||||||
+ nbdplug_register (h, &s, nbd_aio_pwrite (h->nbd, buf, count, offset,
|
|
||||||
+ s.cb, f));
|
|
||||||
return nbdplug_reply (h, &s);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -729,8 +731,7 @@ nbdplug_zero (void *handle, uint32_t count, uint64_t offset, uint32_t flags)
|
|
||||||
if (flags & NBDKIT_FLAG_FUA)
|
|
||||||
f |= LIBNBD_CMD_FLAG_FUA;
|
|
||||||
nbdplug_prepare (&s);
|
|
||||||
- nbdplug_register (h, &s, nbd_aio_zero_callback (h->nbd, count, offset,
|
|
||||||
- nbdplug_notify, &s, f));
|
|
||||||
+ nbdplug_register (h, &s, nbd_aio_zero (h->nbd, count, offset, s.cb, f));
|
|
||||||
return nbdplug_reply (h, &s);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -744,8 +745,7 @@ nbdplug_trim (void *handle, uint32_t count, uint64_t offset, uint32_t flags)
|
|
||||||
|
|
||||||
assert (!(flags & ~NBDKIT_FLAG_FUA));
|
|
||||||
nbdplug_prepare (&s);
|
|
||||||
- nbdplug_register (h, &s, nbd_aio_trim_callback (h->nbd, count, offset,
|
|
||||||
- nbdplug_notify, &s, f));
|
|
||||||
+ nbdplug_register (h, &s, nbd_aio_trim (h->nbd, count, offset, s.cb, f));
|
|
||||||
return nbdplug_reply (h, &s);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -758,23 +758,17 @@ nbdplug_flush (void *handle, uint32_t flags)
|
|
||||||
|
|
||||||
assert (!flags);
|
|
||||||
nbdplug_prepare (&s);
|
|
||||||
- nbdplug_register (h, &s, nbd_aio_flush_callback (h->nbd,
|
|
||||||
- nbdplug_notify, &s, 0));
|
|
||||||
+ nbdplug_register (h, &s, nbd_aio_flush (h->nbd, s.cb, 0));
|
|
||||||
return nbdplug_reply (h, &s);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
-nbdplug_extent (unsigned valid_flag, void *opaque,
|
|
||||||
- const char *metacontext, uint64_t offset,
|
|
||||||
+nbdplug_extent (void *opaque, const char *metacontext, uint64_t offset,
|
|
||||||
uint32_t *entries, size_t nr_entries, int *error)
|
|
||||||
{
|
|
||||||
- struct transaction *trans = opaque;
|
|
||||||
- struct nbdkit_extents *extents = trans->extents;
|
|
||||||
+ struct nbdkit_extents *extents = opaque;
|
|
||||||
|
|
||||||
- if (!(valid_flag & LIBNBD_CALLBACK_VALID))
|
|
||||||
- return 0;
|
|
||||||
-
|
|
||||||
- assert (strcmp (metacontext, "base:allocation") == 0);
|
|
||||||
+ assert (strcmp (metacontext, LIBNBD_CONTEXT_BASE_ALLOCATION) == 0);
|
|
||||||
assert (nr_entries % 2 == 0);
|
|
||||||
while (nr_entries) {
|
|
||||||
/* We rely on the fact that NBDKIT_EXTENT_* match NBD_STATE_* */
|
|
||||||
@@ -797,14 +791,12 @@ nbdplug_extents (void *handle, uint32_t count, uint64_t offset,
|
|
||||||
struct handle *h = handle;
|
|
||||||
struct transaction s;
|
|
||||||
uint32_t f = flags & NBDKIT_FLAG_REQ_ONE ? LIBNBD_CMD_FLAG_REQ_ONE : 0;
|
|
||||||
+ nbd_extent_callback extcb = { nbdplug_extent, extents };
|
|
||||||
|
|
||||||
assert (!(flags & ~NBDKIT_FLAG_REQ_ONE));
|
|
||||||
nbdplug_prepare (&s);
|
|
||||||
- s.extents = extents;
|
|
||||||
- nbdplug_register (h, &s, nbd_aio_block_status_callback (h->nbd, count, offset,
|
|
||||||
- nbdplug_extent, &s,
|
|
||||||
- nbdplug_notify, &s,
|
|
||||||
- f));
|
|
||||||
+ nbdplug_register (h, &s, nbd_aio_block_status (h->nbd, count, offset,
|
|
||||||
+ extcb, s.cb, f));
|
|
||||||
return nbdplug_reply (h, &s);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -817,8 +809,7 @@ nbdplug_cache (void *handle, uint32_t count, uint64_t offset, uint32_t flags)
|
|
||||||
|
|
||||||
assert (!flags);
|
|
||||||
nbdplug_prepare (&s);
|
|
||||||
- nbdplug_register (h, &s, nbd_aio_cache_callback (h->nbd, count, offset,
|
|
||||||
- nbdplug_notify, &s, 0));
|
|
||||||
+ nbdplug_register (h, &s, nbd_aio_cache (h->nbd, count, offset, s.cb, 0));
|
|
||||||
return nbdplug_reply (h, &s);
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/README b/README
|
|
||||||
index 06c16dd..b78f490 100644
|
|
||||||
--- a/README
|
|
||||||
+++ b/README
|
|
||||||
@@ -113,7 +113,7 @@ For the linuxdisk plugin:
|
|
||||||
|
|
||||||
For the nbd plugin, to get URI and TLS support:
|
|
||||||
|
|
||||||
- - libnbd >= 0.9.6
|
|
||||||
+ - libnbd >= 0.9.8
|
|
||||||
|
|
||||||
For the Perl, example4 and tar plugins:
|
|
||||||
|
|
||||||
--
|
|
||||||
2.22.0
|
|
||||||
|
|
10
nbdkit.spec
10
nbdkit.spec
@ -27,8 +27,8 @@
|
|||||||
%global source_directory 1.13-development
|
%global source_directory 1.13-development
|
||||||
|
|
||||||
Name: nbdkit
|
Name: nbdkit
|
||||||
Version: 1.13.8
|
Version: 1.13.9
|
||||||
Release: 7%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: NBD server
|
Summary: NBD server
|
||||||
|
|
||||||
License: BSD
|
License: BSD
|
||||||
@ -41,9 +41,6 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name
|
|||||||
Source2: libguestfs.keyring
|
Source2: libguestfs.keyring
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Fix for libnbd 0.9.8.
|
|
||||||
Patch0001: 0001-nbd-Another-libnbd-version-bump.patch
|
|
||||||
|
|
||||||
%if 0%{patches_touch_autotools}
|
%if 0%{patches_touch_autotools}
|
||||||
BuildRequires: autoconf, automake, libtool
|
BuildRequires: autoconf, automake, libtool
|
||||||
%endif
|
%endif
|
||||||
@ -874,6 +871,9 @@ make %{?_smp_mflags} check || {
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.9-1
|
||||||
|
- New upstream version 1.13.9.
|
||||||
|
|
||||||
* Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-7
|
* Wed Aug 21 2019 Richard W.M. Jones <rjones@redhat.com> - 1.13.8-7
|
||||||
- Add provides for all basic plugins and filters.
|
- Add provides for all basic plugins and filters.
|
||||||
|
|
||||||
|
4
sources
4
sources
@ -1,2 +1,2 @@
|
|||||||
SHA512 (nbdkit-1.13.8.tar.gz) = 51dbe6852f7539a2e07a1435499272a4a3e68163e3e9c90cc460e3d18b9aab26bbd37c6f15c780908d3335b414386aff69943d759a4a2ce3fc09024b7aa8438e
|
SHA512 (nbdkit-1.13.9.tar.gz) = 2601f67b4a0e3f4d88e8daeb2460bb6851387d7bca3746c65b2efdcdba35dcf9dd3e9be843a626333bf1ea581a50c02c2afa36a8cee47d5c147b814f1b062e76
|
||||||
SHA512 (nbdkit-1.13.8.tar.gz.sig) = 34ff83f6bf345fa03081b985abbbf2a93bef6583cd7a67126d9b11c03bab226573a414e69624fb2bde1ca0654a5614d3915a81898d66ebbc05480116f12a3e8c
|
SHA512 (nbdkit-1.13.9.tar.gz.sig) = 5b884fe4d33627926d015f308681b615114e559918bd127fd0ac1fd417409af84d8263b36ec3ab13bc2d556a866256c7ab4325f497f148fbe1cfd3783896e7f6
|
||||||
|
Loading…
Reference in New Issue
Block a user