aboutsummaryrefslogtreecommitdiff
path: root/sys/geom
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2023-12-26 01:43:06 +0000
committerMark Johnston <markj@FreeBSD.org>2023-12-26 02:04:01 +0000
commitbbf221e3e822d15dafb37bd8e200a9864f2636b4 (patch)
treef6273fad59ecdad612b4f871a8adef825a870f0c /sys/geom
parent6cdff09c0d70f780a738dbd3d87deb3b13ec8446 (diff)
downloadsrc-bbf221e3e822d15dafb37bd8e200a9864f2636b4.tar.gz
src-bbf221e3e822d15dafb37bd8e200a9864f2636b4.zip
Diffstat (limited to 'sys/geom')
-rw-r--r--sys/geom/geom_ctl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/geom/geom_ctl.c b/sys/geom/geom_ctl.c
index ebfde5697eeb..5536bd6b7110 100644
--- a/sys/geom/geom_ctl.c
+++ b/sys/geom/geom_ctl.c
@@ -616,8 +616,10 @@ g_ctl_ioctl_ctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct th
}
}
if (sbuf_done(req->serror)) {
- copyout(sbuf_data(req->serror), req->error,
+ nerror = copyout(sbuf_data(req->serror), req->error,
imin(req->lerror, sbuf_len(req->serror) + 1));
+ if (nerror != 0 && req->nerror == 0)
+ req->nerror = nerror;
}
nerror = req->nerror;