Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932497AbbFIVMH (ORCPT ); Tue, 9 Jun 2015 17:12:07 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:34084 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751265AbbFIVMD (ORCPT ); Tue, 9 Jun 2015 17:12:03 -0400 Date: Tue, 9 Jun 2015 14:12:02 -0700 From: "gregkh@linuxfoundation.org" To: Lisa Du Cc: "linux-kernel@vger.kernel.org" Subject: Re: A race condition between debugfs and seq_file operation Message-ID: <20150609211202.GA16801@kroah.com> References: <3626bdb18cfc40c98618d0ee68816ab0@SC-EXCH04.marvell.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3626bdb18cfc40c98618d0ee68816ab0@SC-EXCH04.marvell.com> User-Agent: Mutt/1.5.23+89 (0255b37be491) (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1145 Lines: 36 On Mon, Jun 08, 2015 at 04:28:10AM +0000, Lisa Du wrote: > Hi, All > Recently I met one race condition related to debugfs. > > Take an example from ion.c in kernel3.14: > static int ion_debug_client_open(struct inode *inode, struct file *file) > { > return single_open(file, ion_debug_client_show, inode->i_private); > } > > static const struct file_operations debug_client_fops = { > .open = ion_debug_client_open, > .read = seq_read, > .llseek = seq_lseek, > .release = single_release, > }; > client->debug_root = debugfs_create_file(client->display_name, 0664, > dev->clients_debug_root, > client, &debug_client_fops); > > I find during I read the debugfs node, driver can do debugfs_remove_recursive(dentry); > Is it expected? Yes. Well, not "expected", but a mess, yes. Removing debugfs files are known to have lots of races, this isn't the only one :( thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/