From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jonathan Corbet Subject: Re: [RFC PATCH for-next 3/4] epoll: struct epoll support Date: Mon, 24 Feb 2014 11:59:07 -0700 Message-ID: <20140224115907.07092911@lwn.net> References: <1393206162-18151-1-git-send-email-n1ght.4nd.d4y@gmail.com> <1393206162-18151-4-git-send-email-n1ght.4nd.d4y@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8bit Cc: viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Nathaniel Yazdani Return-path: In-Reply-To: <1393206162-18151-4-git-send-email-n1ght.4nd.d4y@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org So I was just looking things over quickly, and something jumped out at me. In ep_control(): > + } else if (!(*io) && epi) { > + /* delete this eventpoll entry */ > + if (is_file_epoll(target)) { > + tep = target->private_data; > + mutex_lock_nested(&tep->mtx, 1); > + } > + if (is_file_epoll(target)) > + mutex_lock_nested(&tep->mtx, 1); How could that possibly work? I can't imagine tep->mtx is going to react well to being locked a second time... jon