diff options
author | jhb <jhb@FreeBSD.org> | 2006-01-06 16:30:30 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2006-01-06 16:30:30 +0000 |
commit | e851a1b52aa81242bee0ce1da1d3d2172f0e670d (patch) | |
tree | f88c5a59f00b165788ee9ff213f675c12c81b87a /sys | |
parent | c3c1fed1fa10387bb1a927be20aa05f026378186 (diff) | |
download | FreeBSD-src-e851a1b52aa81242bee0ce1da1d3d2172f0e670d.zip FreeBSD-src-e851a1b52aa81242bee0ce1da1d3d2172f0e670d.tar.gz |
Return EBADF rather than EINVAL for FWRITE failure as per POSIX.
MFC after: 1 week
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/kern_descrip.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 28922d3..7cc2c12 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -1983,8 +1983,7 @@ _fget(struct thread *td, int fd, struct file **fpp, int flags, int hold) } /* - * Note: FREAD failure returns EBADF to maintain backwards - * compatibility with what routines returned before. + * FREAD and FWRITE failure return EBADF as per POSIX. * * Only one flag, or 0, may be specified. */ @@ -1994,7 +1993,7 @@ _fget(struct thread *td, int fd, struct file **fpp, int flags, int hold) } if (flags == FWRITE && (fp->f_flag & FWRITE) == 0) { FILEDESC_UNLOCK(fdp); - return (EINVAL); + return (EBADF); } if (hold) { fhold(fp); |