aboutsummaryrefslogtreecommitdiffstats
path: root/fs/eventfd.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/eventfd.c')
-rw-r--r--fs/eventfd.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/fs/eventfd.c b/fs/eventfd.c
index d81b9f654086..35470d9b96e6 100644
--- a/fs/eventfd.c
+++ b/fs/eventfd.c
@@ -19,6 +19,8 @@
19#include <linux/export.h> 19#include <linux/export.h>
20#include <linux/kref.h> 20#include <linux/kref.h>
21#include <linux/eventfd.h> 21#include <linux/eventfd.h>
22#include <linux/proc_fs.h>
23#include <linux/seq_file.h>
22 24
23struct eventfd_ctx { 25struct eventfd_ctx {
24 struct kref kref; 26 struct kref kref;
@@ -284,7 +286,25 @@ static ssize_t eventfd_write(struct file *file, const char __user *buf, size_t c
284 return res; 286 return res;
285} 287}
286 288
289#ifdef CONFIG_PROC_FS
290static int eventfd_show_fdinfo(struct seq_file *m, struct file *f)
291{
292 struct eventfd_ctx *ctx = f->private_data;
293 int ret;
294
295 spin_lock_irq(&ctx->wqh.lock);
296 ret = seq_printf(m, "eventfd-count: %16llx\n",
297 (unsigned long long)ctx->count);
298 spin_unlock_irq(&ctx->wqh.lock);
299
300 return ret;
301}
302#endif
303
287static const struct file_operations eventfd_fops = { 304static const struct file_operations eventfd_fops = {
305#ifdef CONFIG_PROC_FS
306 .show_fdinfo = eventfd_show_fdinfo,
307#endif
288 .release = eventfd_release, 308 .release = eventfd_release,
289 .poll = eventfd_poll, 309 .poll = eventfd_poll,
290 .read = eventfd_read, 310 .read = eventfd_read,