Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S269281AbUIBXL5 (ORCPT ); Thu, 2 Sep 2004 19:11:57 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S269260AbUIBXIe (ORCPT ); Thu, 2 Sep 2004 19:08:34 -0400 Received: from fw.osdl.org ([65.172.181.6]:54963 "EHLO mail.osdl.org") by vger.kernel.org with ESMTP id S269185AbUIBXAW (ORCPT ); Thu, 2 Sep 2004 19:00:22 -0400 Date: Thu, 2 Sep 2004 15:57:58 -0700 From: Andrew Morton To: Simon Derr Cc: greg@kroah.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH] Possible race in sysfs_read_file() and sysfs_write_file() Message-Id: <20040902155758.1eba30a5.akpm@osdl.org> In-Reply-To: References: <20040901163436.263802bc.akpm@osdl.org> X-Mailer: Sylpheed version 0.9.7 (GTK+ 1.2.10; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 621 Lines: 19 Simon Derr wrote: > > @@ -140,13 +145,17 @@ > struct sysfs_buffer * buffer = file->private_data; > ssize_t retval = 0; > > - if (!*ppos) { > + down(&buffer->sem); > + if ((!*ppos) || (!buffer->page)) { > if ((retval = fill_read_buffer(file->f_dentry,buffer))) > - return retval; > + goto out; Why are we testing *ppos at all in here? - 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/