summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/sys_generic.c')
-rw-r--r--sys/kern/sys_generic.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c
index 0f3e3a9..e3393f3 100644
--- a/sys/kern/sys_generic.c
+++ b/sys/kern/sys_generic.c
@@ -137,7 +137,7 @@ pread(td, uap)
if ((error = fget_read(td, uap->fd, &fp)) != 0)
return (error);
- if (fp->f_type != DTYPE_VNODE) {
+ if (!(fp->f_ops->fo_flags & DFLAG_SEEKABLE)) {
error = ESPIPE;
} else {
error = dofileread(td, fp, uap->fd, uap->buf, uap->nbyte,
@@ -360,11 +360,11 @@ pwrite(td, uap)
int error;
if ((error = fget_write(td, uap->fd, &fp)) == 0) {
- if (fp->f_type == DTYPE_VNODE) {
+ if (!(fp->f_ops->fo_flags & DFLAG_SEEKABLE)) {
+ error = ESPIPE;
+ } else {
error = dofilewrite(td, fp, uap->fd, uap->buf,
uap->nbyte, uap->offset, FOF_OFFSET);
- } else {
- error = ESPIPE;
}
fdrop(fp, td);
} else {
OpenPOWER on IntegriCloud