diff options
Diffstat (limited to 'fs/eventfd.c')
| -rw-r--r-- | fs/eventfd.c | 20 | 
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 @@  #include <linux/export.h>  #include <linux/kref.h>  #include <linux/eventfd.h> +#include <linux/proc_fs.h> +#include <linux/seq_file.h>  struct eventfd_ctx {  	struct kref kref; @@ -284,7 +286,25 @@ static ssize_t eventfd_write(struct file *file, const char __user *buf, size_t c  	return res;  } +#ifdef CONFIG_PROC_FS +static int eventfd_show_fdinfo(struct seq_file *m, struct file *f) +{ +	struct eventfd_ctx *ctx = f->private_data; +	int ret; + +	spin_lock_irq(&ctx->wqh.lock); +	ret = seq_printf(m, "eventfd-count: %16llx\n", +			 (unsigned long long)ctx->count); +	spin_unlock_irq(&ctx->wqh.lock); + +	return ret; +} +#endif +  static const struct file_operations eventfd_fops = { +#ifdef CONFIG_PROC_FS +	.show_fdinfo	= eventfd_show_fdinfo, +#endif  	.release	= eventfd_release,  	.poll		= eventfd_poll,  	.read		= eventfd_read, |