Commit 5bd86ead authored by Celina Sophie Kalus's avatar Celina Sophie Kalus Committed by Chris Friedt
Browse files

posix: eventfd: Fix unsetting internal flags in ioctl



Commit e6eb0a70 ("posix: eventfd: revise locking, signaling, and
allocation") introduced a regression where the internal flags of an
event file descriptor would be erased when calling the F_SETFL ioctl
operation.

This includes the flag EFD_IN_USE_INTERNAL which determines whether
this file descriptor has been opened, thus effectively closing the
eventfd whenever one tries to change a flag.

Signed-off-by: default avatarCelina Sophie Kalus <hello@celinakalus.de>
parent 12f48fe8
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -247,7 +247,9 @@ static int eventfd_ioctl_op(void *obj, unsigned int request, va_list args)
			errno = EINVAL;
			ret = -1;
		} else {
			efd->flags = flags;
			int prev_flags = efd->flags & ~EFD_FLAGS_SET_INTERNAL;

			efd->flags = flags | prev_flags;
			ret = 0;
		}
	} break;