OSDN Git Service

bpf: In bpf_task_fd_query use fget_task
authorEric W. Biederman <ebiederm@xmission.com>
Fri, 20 Nov 2020 23:14:22 +0000 (17:14 -0600)
committerEric W. Biederman <ebiederm@xmission.com>
Thu, 10 Dec 2020 18:39:44 +0000 (12:39 -0600)
commitb48845af0152d790a54b8ab78cc2b7c07485fc98
tree1e2620306583bc904cb9bbf946f54d8f384d274d
parentf43c283a89a7dc531a47d4b1e001503cf3dc3234
bpf: In bpf_task_fd_query use fget_task

Use the helper fget_task to simplify bpf_task_fd_query.

As well as simplifying the code this removes one unnecessary increment of
struct files_struct.  This unnecessary increment of files_struct.count can
result in exec unnecessarily unsharing files_struct and breaking posix
locks, and it can result in fget_light having to fallback to fget reducing
performance.

This simplification comes from the observation that none of the
callers of get_files_struct actually need to call get_files_struct
that was made when discussing[1] exec and posix file locks.

[1] https://lkml.kernel.org/r/20180915160423.GA31461@redhat.com
Suggested-by: Oleg Nesterov <oleg@redhat.com>
v1: https://lkml.kernel.org/r/20200817220425.9389-5-ebiederm@xmission.com
Link: https://lkml.kernel.org/r/20201120231441.29911-5-ebiederm@xmission.com
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
kernel/bpf/syscall.c