]> git.baikalelectronics.ru Git - kernel.git/commit
fs/lock: skip lock owner pid translation in case we are in init_pid_ns
authorKonstantin Khorenko <khorenko@virtuozzo.com>
Fri, 8 Jun 2018 14:27:11 +0000 (17:27 +0300)
committerJeff Layton <jlayton@redhat.com>
Thu, 14 Jun 2018 11:36:40 +0000 (07:36 -0400)
commit445357b2fc5fbfed5591d321dbe14bfec0d7f459
tree263b1ff4f23abff02c7784d4de3d3ed6f0f7eaec
parentb70262300972dc1993cfc58df641299ac4b27ac2
fs/lock: skip lock owner pid translation in case we are in init_pid_ns

If the flock owner process is dead and its pid has been already freed,
pid translation won't work, but we still want to show flock owner pid
number when expecting /proc/$PID/fdinfo/$FD in init pidns.

Reproducer:
process A process A1 process A2
fork()--------->
exit() open()
flock()
fork()--------->
exit() sleep()

Before the patch:
================
(root@vz7)/: cat /proc/${PID_A2}/fdinfo/3
pos:    4
flags:  02100002
mnt_id: 257
lock:   (root@vz7)/:

After the patch:
===============
(root@vz7)/:cat /proc/${PID_A2}/fdinfo/3
pos:    4
flags:  02100002
mnt_id: 295
lock:   1: FLOCK  ADVISORY  WRITE ${PID_A1} b6:f8a61:529946 0 EOF

Fixes: 9ba6f5f6d450 ("fs/locks: Remove fl_nspid and use fs-specific l_pid for remote locks")
Signed-off-by: Konstantin Khorenko <khorenko@virtuozzo.com>
Acked-by: Andrey Vagin <avagin@openvz.org>
Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
fs/locks.c