From: Andrew Vagin <avagin@parallels.com>
To: Jeff Layton <jlayton@poochiereds.net>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Andrey Vagin <avagin@openvz.org>, <linux-kernel@vger.kernel.org>,
<linux-fsdevel@vger.kernel.org>, <linux-doc@vger.kernel.org>,
Jonathan Corbet <corbet@lwn.net>,
Alexander Viro <viro@zeniv.linux.org.uk>,
"J. Bruce Fields" <bfields@fieldses.org>,
Cyrill Gorcunov <gorcunov@openvz.org>,
Pavel Emelyanov <xemul@parallels.com>
Subject: Re: [PATCH] proc: show locks in /proc/pid/fdinfo/X
Date: Fri, 6 Mar 2015 17:19:48 +0300 [thread overview]
Message-ID: <20150306141948.GA10521@paralelels.com> (raw)
In-Reply-To: <20150305141140.7b76e130@tlielax.poochiereds.net>
On Thu, Mar 05, 2015 at 02:11:40PM -0500, Jeff Layton wrote:
> On Thu, 5 Mar 2015 18:37:18 +0300
> Andrey Vagin <avagin@openvz.org> wrote:
>
> > Let's show locks which are associated with a file descriptor in
> > its fdinfo file.
> >
> > Currently we don't have a reliable way to determine who holds a lock.
> > We can find some information in /proc/locks, but PID which is reported
> > there can be wrong. For example, a process takes a lock, then forks a
> > child and dies. In this case /proc/locks contains the parent pid, which
> > can be reused by another process.
> >
> > $ cat /proc/locks
> > ...
> > 6: FLOCK ADVISORY WRITE 324 00:13:13431 0 EOF
> > ...
> >
> > $ ps -C rpcbind
> > PID TTY TIME CMD
> > 332 ? 00:00:00 rpcbind
> >
> > $ cat /proc/332/fdinfo/4
> > pos: 0
> > flags: 0100000
> > mnt_id: 22
> > lock: 1: FLOCK ADVISORY WRITE 324 00:13:13431 0 EOF
> >
> > $ ls -l /proc/332/fd/4
> > lr-x------ 1 root root 64 Mar 5 14:43 /proc/332/fd/4 -> /run/rpcbind.lock
> >
> > $ ls -l /proc/324/fd/
> > total 0
> > lrwx------ 1 root root 64 Feb 27 14:50 0 -> /dev/pts/0
> > lrwx------ 1 root root 64 Feb 27 14:50 1 -> /dev/pts/0
> > lrwx------ 1 root root 64 Feb 27 14:49 2 -> /dev/pts/0
> >
> > You can see that the process with the 324 pid doesn't hold the lock.
> >
> > This information is required for proper dumping and restoring file
> > locks.
> >
> > Cc: Jonathan Corbet <corbet@lwn.net>
> > Cc: Alexander Viro <viro@zeniv.linux.org.uk>
> > Cc: Jeff Layton <jlayton@poochiereds.net>
> > Cc: "J. Bruce Fields" <bfields@fieldses.org>
> > Cc: Andrew Morton <akpm@linux-foundation.org>
> > Cc: Cyrill Gorcunov <gorcunov@openvz.org>
> > Cc: Pavel Emelyanov <xemul@parallels.com>
> > Signed-off-by: Andrey Vagin <avagin@openvz.org>
> > ---
> > Documentation/filesystems/proc.txt | 4 ++++
> > fs/locks.c | 38 ++++++++++++++++++++++++++++++++++++++
> > fs/proc/fd.c | 27 ++++++++++++++++++---------
> > include/linux/fs.h | 7 +++++++
> > 4 files changed, 67 insertions(+), 9 deletions(-)
> >
...
> > +struct files_struct;
> > +static inline void show_fd_locks(struct seq_file *f,
> > + struct file *filp, struct files_struct *files) {}
> > #endif /* !CONFIG_FILE_LOCKING */
> >
> >
>
> Looks reasonably sane to me. Via what tree should this go in?
I don't know. I think all previous patches about fdinfo went through
linux-mm. Andrew, what do you think?
>
> Acked-by: Jeff Layton <jlayton@poochiereds.net>
Thanks,
Andrey
next prev parent reply other threads:[~2015-03-06 14:20 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-05 15:37 [PATCH] proc: show locks in /proc/pid/fdinfo/X Andrey Vagin
2015-03-05 19:11 ` Jeff Layton
2015-03-06 14:19 ` Andrew Vagin [this message]
2015-03-06 8:38 ` Cyrill Gorcunov
2015-03-06 14:41 ` J. Bruce Fields
2015-03-07 13:00 ` Jeff Layton
2015-03-11 22:08 ` Andrew Morton
2015-03-12 15:54 ` Andrew Vagin
2015-03-12 19:23 ` Andrew Morton
2015-03-12 21:31 ` Andrey Wagin
2015-03-12 16:30 ` [PATCH] selftest: add a test case to check how locks are shown in fdinfo Andrey Vagin
2015-03-12 20:43 ` Shuah Khan
2015-03-13 9:34 ` Andrew Vagin
2015-03-13 13:46 ` Shuah Khan
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=20150306141948.GA10521@paralelels.com \
--to=avagin@parallels.com \
--cc=akpm@linux-foundation.org \
--cc=avagin@openvz.org \
--cc=bfields@fieldses.org \
--cc=corbet@lwn.net \
--cc=gorcunov@openvz.org \
--cc=jlayton@poochiereds.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--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.