Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

eventfd: show the EFD_SEMAPHORE flag in fdinfo

The EFD_SEMAPHORE flag should be displayed in fdinfo,
as different value could affect the behavior of eventfd.

Suggested-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Wen Yang <wenyang.linux@foxmail.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Christian Brauner <brauner@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Dylan Yudaken <dylany@fb.com>
Cc: David Woodhouse <dwmw@amazon.co.uk>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Eric Biggers <ebiggers@google.com>
Cc: linux-fsdevel@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Message-Id: <tencent_05B9CFEFE6B9BC2A9B3A27886A122A7D9205@qq.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>

authored by

Wen Yang and committed by
Christian Brauner
33d8b5d7 5c075c5b

+6 -4
+6 -4
fs/eventfd.c
··· 33 33 /* 34 34 * Every time that a write(2) is performed on an eventfd, the 35 35 * value of the __u64 being written is added to "count" and a 36 - * wakeup is performed on "wqh". A read(2) will return the "count" 37 - * value to userspace, and will reset "count" to zero. The kernel 38 - * side eventfd_signal() also, adds to the "count" counter and 39 - * issue a wakeup. 36 + * wakeup is performed on "wqh". If EFD_SEMAPHORE flag was not 37 + * specified, a read(2) will return the "count" value to userspace, 38 + * and will reset "count" to zero. The kernel side eventfd_signal() 39 + * also, adds to the "count" counter and issue a wakeup. 40 40 */ 41 41 __u64 count; 42 42 unsigned int flags; ··· 301 301 (unsigned long long)ctx->count); 302 302 spin_unlock_irq(&ctx->wqh.lock); 303 303 seq_printf(m, "eventfd-id: %d\n", ctx->id); 304 + seq_printf(m, "eventfd-semaphore: %d\n", 305 + !!(ctx->flags & EFD_SEMAPHORE)); 304 306 } 305 307 #endif 306 308