From ca90c6c1db3881ce5a44e06610a29a128e5455f2 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 13 Sep 2017 14:00:50 +0200 Subject: libio: Add rtems_libio_iop_flags_initialize() Update #3132. --- cpukit/libcsupport/src/fcntl.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'cpukit/libcsupport/src/fcntl.c') diff --git a/cpukit/libcsupport/src/fcntl.c b/cpukit/libcsupport/src/fcntl.c index 0fe734d61c..82052011ec 100644 --- a/cpukit/libcsupport/src/fcntl.c +++ b/cpukit/libcsupport/src/fcntl.c @@ -26,15 +26,14 @@ static int duplicate_iop( rtems_libio_t *iop ) { - int rv = 0; + int rv; + int oflag; + rtems_libio_t *diop; - rtems_libio_t *diop = rtems_libio_allocate(); + oflag = rtems_libio_to_fcntl_flags( iop->flags ); + diop = rtems_libio_allocate(); if (diop != NULL) { - int oflag = rtems_libio_to_fcntl_flags( iop->flags ); - - rtems_libio_iop_flags_set( diop, rtems_libio_fcntl_flags( oflag ) ); - rtems_filesystem_instance_lock( &iop->pathinfo ); rtems_filesystem_location_clone( &diop->pathinfo, &iop->pathinfo ); rtems_filesystem_instance_unlock( &iop->pathinfo ); @@ -46,6 +45,10 @@ static int duplicate_iop( rtems_libio_t *iop ) */ rv = (*diop->pathinfo.handlers->open_h)( diop, NULL, oflag, 0 ); if ( rv == 0 ) { + rtems_libio_iop_flags_initialize( + diop, + rtems_libio_fcntl_flags( oflag ) + ); rv = rtems_libio_iop_to_descriptor( diop ); } else { rtems_libio_free( diop ); -- cgit v1.2.3