Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758011AbZKRR1b (ORCPT ); Wed, 18 Nov 2009 12:27:31 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757974AbZKRR1b (ORCPT ); Wed, 18 Nov 2009 12:27:31 -0500 Received: from mail2.shareable.org ([80.68.89.115]:35770 "EHLO mail2.shareable.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757879AbZKRR1a (ORCPT ); Wed, 18 Nov 2009 12:27:30 -0500 Date: Wed, 18 Nov 2009 17:27:30 +0000 From: Jamie Lokier To: Alan Cox Cc: Jan Blunck , linux-fsdevel@vger.kernel.org, Linux-Kernel Mailinglist , Andrew Morton , jkacur@redhat.com, Thomas Gleixner , Arnd Bergmann , Christoph Hellwig , =?iso-8859-1?Q?Fr=E9d=E9ric?= Weisbecker , Alexander Viro Subject: Re: [PATCH 1/2] BKL: Remove BKL from default_llseek() Message-ID: <20091118172730.GD28723@shareable.org> References: <1258560457-15129-1-git-send-email-jblunck@suse.de> <20091118171524.4d2f8cec@lxorguk.ukuu.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20091118171524.4d2f8cec@lxorguk.ukuu.org.uk> User-Agent: Mutt/1.5.13 (2006-08-11) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1381 Lines: 30 Alan Cox wrote: > > Using the BKL in llseek() does not protect the inode's i_size from > > modification since the i_size is protected by a seqlock nowadays. Since > > default_llseek() is already using the i_size_read() wrapper it is not the > > BKL which is serializing the access here. > > The access to file->f_pos is not protected by the BKL either since its > > access in vfs_write()/vfs_read() is not protected by any lock. If the BKL > > is not protecting anything here it can clearly get removed. > > No. Your logic is flawed > > The BKL is protected something here - it protects the change of offset > with respect to other BKL users within drivers. The question is what if > anything in any other driver code depends upon the BKL and uses it to > protect f_pos. Probably very little if anything but a grep for f_pos > through the drivers might not be a bad idea before assuming this. Very > few touch f_pos except in their own llseek method. Of course, drivers shouldn't be using f_pos outside their llseek method, as they should all behave the same with pread/pwrite as with llseek+read/write. Is that mistaken? -- Jamie -- 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/