All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	Al Viro <viro@zeniv.linux.org.uk>,
	Alexey Dobriyan <adobriyan@gmail.com>,
	Pavel Emelyanov <xemul@parallels.com>,
	James Bottomley <jbottomley@parallels.com>,
	Matthew Helsley <matt.helsley@gmail.com>,
	aneesh.kumar@linux.vnet.ibm.com, bfields@fieldses.org
Subject: Re: [patch 4/7] fs, notify: Add procfs fdinfo helper v4
Date: Mon, 12 Nov 2012 17:00:17 -0800	[thread overview]
Message-ID: <20121112170017.537e3c97.akpm@linux-foundation.org> (raw)
In-Reply-To: <20121112101845.907133141@openvz.org>

On Mon, 12 Nov 2012 14:14:44 +0400
Cyrill Gorcunov <gorcunov@openvz.org> wrote:

> This allow us to print out fsnotify details such as
> watchee inode, device, mask and optionally a file handle.
> 
> For inotify objects if kernel compiled with exportfs support
> the output will be
> 
>  | pos:	0
>  | flags:	02000000
>  | inotify wd:        3 ino:             9e7e sdev:   800013 mask:  800afce ignored_mask:        0 fhandle-bytes:        8 fhandle-type:        1 f_handle: 7e9e0000640d1b6d
>  | inotify wd:        2 ino:             a111 sdev:   800013 mask:  800afce ignored_mask:        0 fhandle-bytes:        8 fhandle-type:        1 f_handle: 11a1000020542153
>  | inotify wd:        1 ino:            6b149 sdev:   800013 mask:  800afce ignored_mask:        0 fhandle-bytes:        8 fhandle-type:        1 f_handle: 49b1060023552153
> 
> If kernel compiled without exportfs support, the file handle
> won't be provided but inode and device only.
> 
>  | pos:	0
>  | flags:	02000000
>  | inotify wd:        3 ino:             9e7e sdev:   800013 mask:  800afce ignored_mask:        0
>  | inotify wd:        2 ino:             a111 sdev:   800013 mask:  800afce ignored_mask:        0
>  | inotify wd:        1 ino:            6b149 sdev:   800013 mask:  800afce ignored_mask:        0
> 
> For fanotify the output is like
> 
>  | pos:	0
>  | flags:	02
>  | fanotify ino:            68f71 sdev:   800013 mask:        1 ignored_mask: 40000000
>  | fanotify mnt_id:       13 mask:        1 ignored_mask: 40000000
> 
> To minimize impact on general fsnotify code the new functionality
> is gathered in fs/notify/fdinfo.c file.
> 
>
> ...
>
> --- /dev/null
> +++ linux-2.6.git/fs/notify/fdinfo.h
> @@ -0,0 +1,22 @@
> +#ifndef __FSNOTIFY_FDINFO_H__
> +#define __FSNOTIFY_FDINFO_H__
> +
> +#include <linux/errno.h>
> +#include <linux/proc_fs.h>
> +
> +struct seq_file;
> +struct file;
> +
> +#ifdef CONFIG_PROC_FS
> +
> +#ifdef CONFIG_INOTIFY_USER
> +extern int inotify_show_fdinfo(struct seq_file *m, struct file *f);
> +#endif
> +#ifdef CONFIG_FANOTIFY
> +extern int fanotify_show_fdinfo(struct seq_file *m, struct file *f);
> +#endif

#else	/* CONFIG_PROC_FS */
#define inotify_show_fdinfo NULL
#define fanotify_show_fdinfo NULL
#endif	/* CONFIG_PROC_FS */

> +
>
> ...
>
> @@ -335,6 +336,9 @@ static long inotify_ioctl(struct file *f
>  }
>  
>  static const struct file_operations inotify_fops = {
> +#ifdef CONFIG_PROC_FS
> +	.show_fdinfo	= inotify_show_fdinfo,
> +#endif
>  	.poll		= inotify_poll,
>  	.read		= inotify_read,
>  	.fasync		= inotify_fasync,
> @@ -427,6 +428,9 @@ static long fanotify_ioctl(struct file *
>  }
>  
>  static const struct file_operations fanotify_fops = {
> +#ifdef CONFIG_PROC_FS
> +	.show_fdinfo	= fanotify_show_fdinfo,
> +#endif
>  	.poll		= fanotify_poll,
>  	.read		= fanotify_read,
>  	.write		= fanotify_write,

Then remove these ifdefs.

That's if you can be bothered.  It's a bit of a party trick which
doesn't make things much clearer IMO.


  reply	other threads:[~2012-11-13  1:00 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-12 10:14 [patch 0/7] Providing additional information in fdinfo sufficient for c/r Cyrill Gorcunov
2012-11-12 10:14 ` [patch 1/7] procfs: Add ability to plug in auxiliary fdinfo providers Cyrill Gorcunov
2012-11-13  0:40   ` Andrew Morton
2012-11-13  7:03     ` Cyrill Gorcunov
2012-11-12 10:14 ` [patch 2/7] fs, exportfs: Escape nil dereference if no s_export_op present Cyrill Gorcunov
2012-11-12 10:14 ` [patch 3/7] fs, notify: Add file handle entry into inotify_inode_mark Cyrill Gorcunov
2012-11-13  0:55   ` Andrew Morton
2012-11-13  7:20     ` Cyrill Gorcunov
2012-11-13  7:40       ` Andrew Morton
2012-11-13  8:00         ` Cyrill Gorcunov
2012-11-13  8:19           ` David Rientjes
2012-11-13  8:29             ` Cyrill Gorcunov
     [not found]               ` <2910785.4Vm74eFJyi@deuteros>
2012-11-13 14:40                 ` Cyrill Gorcunov
2012-11-13 15:02                   ` Tvrtko Ursulin
2012-11-13 15:28                     ` Cyrill Gorcunov
2012-11-14  9:20                       ` Tvrtko Ursulin
2012-11-14  9:38                         ` Cyrill Gorcunov
2012-11-14  9:50                           ` Tvrtko Ursulin
2012-11-14  9:58                             ` Cyrill Gorcunov
2012-11-14 10:08                               ` Tvrtko Ursulin
2012-11-14 10:13                                 ` Pavel Emelyanov
2012-11-14 10:38                                   ` Tvrtko Ursulin
2012-11-14 10:46                                     ` Pavel Emelyanov
2012-11-14 10:54                                       ` Tvrtko Ursulin
2012-11-14 10:56                                         ` Pavel Emelyanov
2012-11-14 11:03                                           ` Cyrill Gorcunov
2012-11-14 11:12                                           ` Tvrtko Ursulin
2012-11-14 12:45                                       ` J. Bruce Fields
2012-11-14 13:03                                         ` Cyrill Gorcunov
2012-11-14 13:26                                           ` J. Bruce Fields
2012-11-14 13:32                                             ` Cyrill Gorcunov
2012-11-13 22:38           ` Andrew Morton
2012-11-14  6:46             ` Cyrill Gorcunov
2012-11-14 10:10               ` Pavel Emelyanov
2012-11-14 10:13                 ` Cyrill Gorcunov
2012-11-12 10:14 ` [patch 4/7] fs, notify: Add procfs fdinfo helper v4 Cyrill Gorcunov
2012-11-13  1:00   ` Andrew Morton [this message]
2012-11-13  7:22     ` Cyrill Gorcunov
2012-11-12 10:14 ` [patch 5/7] fs, eventfd: Add procfs fdinfo helper Cyrill Gorcunov
2012-11-12 10:14 ` [patch 6/7] fs, epoll: Add procfs fdinfo helper v2 Cyrill Gorcunov
2012-11-12 10:14 ` [patch 7/7] fdinfo: Show sigmask for signalfd fd v2 Cyrill Gorcunov
2012-11-13  1:05   ` Andrew Morton
  -- strict thread matches above, loose matches on Subject: below --
2012-09-12 21:29 [patch 0/7] auxiliary fdinfo, new round Cyrill Gorcunov
2012-09-12 21:29 ` [patch 4/7] fs, notify: Add procfs fdinfo helper v4 Cyrill Gorcunov
2012-08-16 16:34 [patch 0/7] procfs, fdinfo reworked, attempts N-th Cyrill Gorcunov
2012-08-16 16:34 ` [patch 4/7] fs, notify: Add procfs fdinfo helper v4 Cyrill Gorcunov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121112170017.537e3c97.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=adobriyan@gmail.com \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=bfields@fieldses.org \
    --cc=gorcunov@openvz.org \
    --cc=jbottomley@parallels.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt.helsley@gmail.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=xemul@parallels.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.