From: Jeff Mahoney Subject: Re: [RFC][PATCH] reiserfs vs BKL Date: Sat, 21 Apr 2007 12:14:41 -0400 Message-ID: <462A3871.3060104@suse.com> References: <1177170364.7316.17.camel@twins> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1177170364.7316.17.camel@twins> Sender: linux-kernel-owner@vger.kernel.org List-Id: Content-Type: text/plain; charset="us-ascii" To: Peter Zijlstra Cc: linux-kernel , reiserfs-list@namesys.com, Andrew Morton , Ingo Molnar , Chris Mason , Nikita Danilov -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Peter Zijlstra wrote: > Replace all the lock_kernel() instances with reiserfs_write_lock(sb), > and make that use an actual per super-block mutex instead of > lock_kernel(). > > This should make reiserfs safe from PREEMPT_BKL=n, since it seems to > rely on being able to schedule. Also, it removes the dependency on the > BKL, and thereby is not prone to cause prio inversion with remaining BKL > users (notably tty). > > Compile tested only, since I didn't dare boot it. NACK. Believe me, I would *love* to nuke the BKL from reiserfs, but a search and replace of this nature is just wrong. reiserfs_write_lock() using the BKL isn't an accident - it depends on its nesting properties. If you did try to boot this kernel, you'd deadlock pretty quickly. This one has been on my TODO list for a long time. Interestingly, I've been doing reiserfs xattr development recently using 2.6.21-rc7-git2, and I'm not seeing any of these messages. # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set # CONFIG_PREEMPT_BKL is not set - -Jeff - -- Jeff Mahoney SUSE Labs -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFGKjhxLPWxlyuTD7IRAgCkAJ95MUehySJUUjBzl1ldr7BxESmQQACgjnkw 73KpJaH2G725AMJeWD02Arg= =PaIV -----END PGP SIGNATURE-----