HomeFreeBSD

Fixed data integrity issue when underlying disk returns error

Description

Fixed data integrity issue when underlying disk returns error

Errors in zil_lwb_write_done() are not propagated to
zil_lwb_flush_vdevs_done() which can result in zil_commit_impl()
not returning an error to applications even when zfs was not able
to write data to the disk.

Remove the ZIO_FLAG_DONT_PROPAGATE flag from zio_rewrite() to
allow errors to propagate and consolidate the error handling for
flush and write errors to a single location (rather than having
error handling split between the "write done" and "flush done"
handlers).

Reviewed-by: George Wilson <gwilson@delphix.com>
Reviewed-by: Prakash Surya <prakash.surya@delphix.com>
Signed-off-by: Arun KV <arun.kv@datacore.com>
Closes #12391
Closes #12443

Details

Provenance
Arun KV <65647132+arun-kv@users.noreply.github.com>Authored on Sep 13 2021, 8:02 PM
Tony Hutter <hutter2@llnl.gov>Committed on Sep 14 2021, 10:45 PM
Parents
rG7816a6b85b45: ZTS: Waiting for zvols to be available
Branches
Unknown
Tags
Unknown

Event Timeline

Tony Hutter <hutter2@llnl.gov> committed rGbb80b4649af5: Fixed data integrity issue when underlying disk returns error (authored by Arun KV <65647132+arun-kv@users.noreply.github.com>).Sep 14 2021, 10:45 PM