From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf0-f68.google.com ([209.85.215.68]:36588 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751563AbdCMSiC (ORCPT ); Mon, 13 Mar 2017 14:38:02 -0400 Date: Mon, 13 Mar 2017 21:37:58 +0300 From: Cyrill Gorcunov To: Andrei Vagin Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, viro@zeniv.linux.org.uk, akpm@linuxfoundation.org, xemul@virtuozzo.com, mtk.manpages@gmail.com, kir@openvz.org, Andrey Vagin , Jason Baron , Andy Lutomirski Subject: Re: [patch 2/3] kcmp: Add KCMP_EPOLL_TFD mode to compare epoll target files Message-ID: <20170313183758.GE6743@uranus.lan> References: <20170310082146.103151106@openvz.org> <20170313173723.GA2855@outlook.office365.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170313173723.GA2855@outlook.office365.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Mon, Mar 13, 2017 at 10:37:24AM -0700, Andrei Vagin wrote: > > Here is one question inline. > > Acked-by: Andrei Vagin Thanks! > > + > > + files = get_files_struct(task2); > > + if (!files) > > + return -EBADF; > > + > > + spin_lock(&files->file_lock); > > + filp_epoll = fcheck_files(files, slot.efd); > > + if (filp_epoll) > > + get_file(filp_epoll); > > + else > > + filp_tgt = ERR_PTR(-EBADF); > > + spin_unlock(&files->file_lock); > > + put_files_struct(files); > > Why can we not use fget here ^^^^ ? Because it's not @current's file table but foreigner process. So we make sure there is no expand_fdtable in progress and we test for file descriptor which is being freed.