FreeBSD Bugzilla – Attachment 218957 Details for
Bug 249438
[ZFS] Regression in recv_incremental_replication() after MFC r354116, r354120
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Fix error merging r354116 from OpenZFS
354116-fixup.diff (text/plain), 5.05 KB, created by
Alan Somers
on 2020-10-21 20:36:25 UTC
(
hide
)
Description:
Fix error merging r354116 from OpenZFS
Filename:
MIME Type:
Creator:
Alan Somers
Created:
2020-10-21 20:36:25 UTC
Size:
5.05 KB
patch
obsolete
>Index: cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c >=================================================================== >--- cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c (revision 366851) >+++ cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c (working copy) >@@ -613,8 +613,8 @@ > const char *fromsnap; > const char *tosnap; > boolean_t recursive; >+ boolean_t replicate; > boolean_t verbose; >- boolean_t replicate; > > /* > * The header nvlist is of the following format: >@@ -848,28 +848,28 @@ > rv = -1; > goto out; > } >- VERIFY(0 == nvlist_add_uint64(nvfs, "origin", >- origin->zfs_dmustats.dds_guid)); >+ fnvlist_add_uint64(nvfs, "origin", >+ origin->zfs_dmustats.dds_guid); > } > > /* iterate over props */ >- VERIFY(0 == nvlist_alloc(&nv, NV_UNIQUE_NAME, 0)); >+ nv = fnvlist_alloc(); > send_iterate_prop(zhp, nv); >- VERIFY(0 == nvlist_add_nvlist(nvfs, "props", nv)); >- nvlist_free(nv); >+ fnvlist_add_nvlist(nvfs, "props", nv); >+ fnvlist_free(nv); > > /* iterate over snaps, and set sd->parent_fromsnap_guid */ >+ sd->parent_fromsnap_guid = 0; >+ sd->parent_snaps = fnvlist_alloc(); >+ sd->snapprops = fnvlist_alloc(); > if (!sd->replicate && fromsnap_txg != 0) > min_txg = fromsnap_txg; > if (!sd->replicate && tosnap_txg != 0) > max_txg = tosnap_txg; >- sd->parent_fromsnap_guid = 0; >- VERIFY(0 == nvlist_alloc(&sd->parent_snaps, NV_UNIQUE_NAME, 0)); >- VERIFY(0 == nvlist_alloc(&sd->snapprops, NV_UNIQUE_NAME, 0)); > (void) zfs_iter_snapshots_sorted(zhp, send_iterate_snap, sd, > min_txg, max_txg); >- VERIFY(0 == nvlist_add_nvlist(nvfs, "snaps", sd->parent_snaps)); >- VERIFY(0 == nvlist_add_nvlist(nvfs, "snapprops", sd->snapprops)); >+ fnvlist_add_nvlist(nvfs, "snaps", sd->parent_snaps); >+ fnvlist_add_nvlist(nvfs, "snapprops", sd->snapprops); > fnvlist_free(sd->parent_snaps); > fnvlist_free(sd->snapprops); > >@@ -876,8 +876,8 @@ > /* add this fs to nvlist */ > (void) snprintf(guidstring, sizeof (guidstring), > "0x%llx", (longlong_t)guid); >- VERIFY(0 == nvlist_add_nvlist(sd->fss, guidstring, nvfs)); >- nvlist_free(nvfs); >+ fnvlist_add_nvlist(sd->fss, guidstring, nvfs); >+ fnvlist_free(nvfs); > > /* iterate over children */ > if (sd->recursive) >@@ -894,13 +894,12 @@ > > static int > gather_nvlist(libzfs_handle_t *hdl, const char *fsname, const char *fromsnap, >- const char *tosnap, boolean_t recursive, boolean_t verbose, >- boolean_t replicate, nvlist_t **nvlp, avl_tree_t **avlp) >+ const char *tosnap, boolean_t recursive, boolean_t replicate, >+ boolean_t verbose, nvlist_t **nvlp, avl_tree_t **avlp) > { > zfs_handle_t *zhp; >+ send_data_t sd = { 0 }; > int error; >- uint64_t min_txg = 0, max_txg = 0; >- send_data_t sd = { 0 }; > > zhp = zfs_open(hdl, fsname, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME); > if (zhp == NULL) >@@ -911,8 +910,8 @@ > sd.fromsnap = fromsnap; > sd.tosnap = tosnap; > sd.recursive = recursive; >+ sd.replicate = replicate; > sd.verbose = verbose; >- sd.replicate = replicate; > > if ((error = send_iterate_fs(zhp, &sd)) != 0) { > nvlist_free(sd.fss); >@@ -1349,10 +1348,10 @@ > dump_filesystem(zfs_handle_t *zhp, void *arg) > { > int rv = 0; >- uint64_t min_txg = 0, max_txg = 0; > send_dump_data_t *sdd = arg; > boolean_t missingfrom = B_FALSE; > zfs_cmd_t zc = { 0 }; >+ uint64_t min_txg = 0, max_txg = 0; > > (void) snprintf(zc.zc_name, sizeof (zc.zc_name), "%s@%s", > zhp->zfs_name, sdd->tosnap); >@@ -1853,8 +1852,8 @@ > } > > err = gather_nvlist(zhp->zfs_hdl, zhp->zfs_name, >- fromsnap, tosnap, flags->replicate, flags->verbose, >- flags->replicate, &fss, &fsavl); >+ fromsnap, tosnap, flags->replicate, >+ flags->replicate, flags->verbose, &fss, &fsavl); > if (err) > goto err_out; > VERIFY(0 == nvlist_add_nvlist(hdrnv, "fss", fss)); >@@ -2497,7 +2496,7 @@ > VERIFY(0 == nvlist_alloc(&deleted, NV_UNIQUE_NAME, 0)); > > if ((error = gather_nvlist(hdl, tofs, fromsnap, NULL, >- recursive, B_FALSE, B_FALSE, &local_nv, &local_avl)) != 0) >+ recursive, recursive, B_FALSE, &local_nv, &local_avl)) != 0) > return (error); > > /* >Index: sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h >=================================================================== >--- sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h (revision 366836) >+++ sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h (working copy) >@@ -882,6 +882,13 @@ > } vdev_initializing_state_t; > > /* >+ * nvlist name constants. Facilitate restricting snapshot iteration range for >+ * the "list next snapshot" ioctl >+ */ >+#define SNAP_ITER_MIN_TXG "snap_iter_min_txg" >+#define SNAP_ITER_MAX_TXG "snap_iter_max_txg" >+ >+/* > * Vdev statistics. Note: all fields should be 64-bit because this > * is passed between kernel and userland as an nvlist uint64 array. > */ >@@ -1158,13 +1165,6 @@ > #define ZCP_MAX_MEMLIMIT (10 * ZCP_DEFAULT_MEMLIMIT) > > /* >- * nvlist name constants. Facilitate restricting snapshot iteration range for >- * the "list next snapshot" ioctl >- */ >-#define SNAP_ITER_MIN_TXG "snap_iter_min_txg" >-#define SNAP_ITER_MAX_TXG "snap_iter_max_txg" >- >-/* > * Sysevent payload members. ZFS will generate the following sysevents with the > * given payloads: > *
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 249438
:
218061
| 218957 |
220151