summaryrefslogtreecommitdiffstats
path: root/cpukit/libcsupport/src/fcntl.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libcsupport/src/fcntl.c')
-rw-r--r--cpukit/libcsupport/src/fcntl.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/cpukit/libcsupport/src/fcntl.c b/cpukit/libcsupport/src/fcntl.c
index 5ed66ede5d..e75baf0c5a 100644
--- a/cpukit/libcsupport/src/fcntl.c
+++ b/cpukit/libcsupport/src/fcntl.c
@@ -30,6 +30,7 @@ int fcntl(
rtems_libio_t *diop;
int fd2;
int flags;
+ int mask;
int ret = 0;
va_start( ap, cmd );
@@ -92,13 +93,13 @@ int fcntl(
case F_SETFL:
flags = rtems_libio_fcntl_flags( va_arg( ap, int ) );
+ mask = LIBIO_FLAGS_NO_DELAY | LIBIO_FLAGS_APPEND;
/*
* XXX If we are turning on append, should we seek to the end?
*/
- iop->flags = (iop->flags & ~(O_APPEND | O_NONBLOCK)) |
- (flags & (O_APPEND | O_NONBLOCK));
+ iop->flags = (iop->flags & ~mask) | (flags & mask);
break;
case F_GETLK: