mirror_zfs/module
Matthew Ahrens 1b9cd1a9d9
Fix error handling in receive_writer_thread()
If `receive_writer_thread()` gets an error from `receive_process_record()`,
it should be saved in `rwa->err` so that we will stop processing records,
and the main thread will notice that the receive has failed.

When an error is first encountered, this happens correctly.  However, if
there are more records to dequeue, the next time through the loop we
will reset `rwa->err` to zero, allowing us to try to process the
following record (2 after the failed record).  Depending on what types
of records remain, we may incorrectly complete the receive
"successfully", but without actually having processed all the records.

The fix is to only set `rwa->err` if we got a *non-zero* error.

This bug was introduced by #10099 "Improve zfs receive performance by
batching writes".

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Paul Dagnelie <pcd@delphix.com>
Signed-off-by: Matthew Ahrens <mahrens@delphix.com>
Closes #10320
2020-05-14 20:48:29 -07:00
..
avl Wrap Linux module macros 2019-11-01 10:41:03 -07:00
icp Remove checks for null out value in encryption paths 2020-03-26 10:41:57 -07:00
lua Add longjmp support for Thumb-2 2020-04-29 17:30:13 -07:00
nvpair cppcheck: (warning) Possible null pointer dereference: nvh 2019-12-18 17:25:57 -08:00
os Fix VN_OPEN_INVFS typo 2020-05-14 20:47:14 -07:00
spl OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
unicode Wrap Linux module macros 2019-11-01 10:41:03 -07:00
zcommon OpenZFS 3254 - add support in zfs for aclmode=restricted 2020-04-30 11:23:59 -07:00
zfs Fix error handling in receive_writer_thread() 2020-05-14 20:48:29 -07:00
.gitignore Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
Makefile.bsd Combine OS-independent ABD Code into Common Source File 2020-05-10 12:23:52 -07:00
Makefile.in Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00