From 894c965d95d971392b14bd2e9c0abf380ba80f02 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 15 Sep 2017 12:46:57 +0200 Subject: Support reference counting for file descriptors Close #3132. --- rtemsbsd/rtems/rtems-kernel-get-file.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'rtemsbsd/rtems/rtems-kernel-get-file.c') diff --git a/rtemsbsd/rtems/rtems-kernel-get-file.c b/rtemsbsd/rtems/rtems-kernel-get-file.c index 6d321c30..b3b39282 100644 --- a/rtemsbsd/rtems/rtems-kernel-get-file.c +++ b/rtemsbsd/rtems/rtems-kernel-get-file.c @@ -47,8 +47,13 @@ rtems_bsd_get_file(int fd) struct file *fp; if ((uint32_t) fd < rtems_libio_number_iops) { + unsigned int flags; + fp = rtems_bsd_fd_to_fp(fd); - if ((fp->f_io.flags & LIBIO_FLAGS_OPEN) != LIBIO_FLAGS_OPEN) { + flags = rtems_libio_iop_hold(&fp->f_io); + + if ((flags & LIBIO_FLAGS_OPEN) == 0) { + rtems_libio_iop_drop(&fp->f_io); fp = NULL; } } else { -- cgit v1.2.3