summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorнаб <nabijaczleweli@nabijaczleweli.xyz>2021-12-23 20:39:29 +0100
committerTony Hutter <hutter2@llnl.gov>2022-02-03 15:28:01 -0800
commit5d8c081193d4fdfdd58a0edf4dc87aa18f75ed33 (patch)
tree6338ae5cefd0b76ad240d46f5babbf6da56a513d
parent14bf91a0431e6b410ec9cf029172dfc5a99eb58f (diff)
FreeBSD: fix unpropagated error
When performing I/O on FreeBSD using a file based vdev ensure all errors encountered when reading/writing are propagated through the zio pipeline. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Ryan Moeller <ryan@ixsystems.com> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #12904
-rw-r--r--module/os/freebsd/zfs/vdev_file.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/module/os/freebsd/zfs/vdev_file.c b/module/os/freebsd/zfs/vdev_file.c
index fc04a7476..742ac9786 100644
--- a/module/os/freebsd/zfs/vdev_file.c
+++ b/module/os/freebsd/zfs/vdev_file.c
@@ -234,6 +234,7 @@ vdev_file_io_strategy(void *arg)
err = zfs_file_pwrite(vf->vf_file, buf, size, off, &resid);
abd_return_buf(zio->io_abd, buf, size);
}
+ zio->io_error = err;
if (resid != 0 && zio->io_error == 0)
zio->io_error = ENOSPC;