mirror of https://github.com/openzfs/zfs.git
Fix missing ivset guid with resumed raw base recv
This patch corrects a bug introduced in 61152d1069
. When
resuming a raw base receive, the dmu_recv code always sets
drc->drc_fromsnapobj to the object ID of the previous
snapshot. For incrementals, this is correct, but for base
sends, this should be left at 0. The presence of this ID
eventually allows a check to run which determines whether
or not the incoming stream and the previous snapshot have
matching IVset guids. This check fails becuase it is not
meant to run when there is no previous snapshot. When it
does fail, the user receives an error stating that the
incoming stream has the problem outlined in errata 4.
This patch corrects this issue by simply ensuring
drc->drc_fromsnapobj is left as 0 for base receives.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #10234
Closes #10239
This commit is contained in:
parent
6de3e59bdd
commit
aa646323db
|
@ -1013,7 +1013,7 @@ dmu_recv_resume_begin_check(void *arg, dmu_tx_t *tx)
|
|||
return (SET_ERROR(EINVAL));
|
||||
}
|
||||
|
||||
if (ds->ds_prev != NULL)
|
||||
if (ds->ds_prev != NULL && drrb->drr_fromguid != 0)
|
||||
drc->drc_fromsnapobj = ds->ds_prev->ds_object;
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue