lkml.org 
[lkml]   [2009]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 4/4] kill-the-bkl/reiserfs: panic in case of lock imbalance
Date
Until now, trying to unlock the reiserfs write lock whereas the current
task doesn't hold it lead to a simple warning.
We should actually warn and panic in this case to avoid the user datas
to reach an unstable state.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jeff Mahoney <jeffm@suse.com>
Cc: Chris Mason <chris.mason@oracle.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Alexander Beregalov <a.beregalov@gmail.com>
Cc: Laurent Riffard <laurent.riffard@free.fr>
---
fs/reiserfs/lock.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/fs/reiserfs/lock.c b/fs/reiserfs/lock.c
index cb1bba3..ee2cfc0 100644
--- a/fs/reiserfs/lock.c
+++ b/fs/reiserfs/lock.c
@@ -37,11 +37,10 @@ void reiserfs_write_unlock(struct super_block *s)

/*
* Are we unlocking without even holding the lock?
- * Such a situation could even raise a BUG() if we don't
- * want the data become corrupted
+ * Such a situation must raise a BUG() if we don't want
+ * to corrupt the data.
*/
- WARN_ONCE(sb_i->lock_owner != current,
- "Superblock write lock imbalance");
+ BUG_ON(sb_i->lock_owner != current);

if (--sb_i->lock_depth == -1) {
sb_i->lock_owner = NULL;
--
1.6.2.3


\
 
 \ /
  Last update: 2009-08-25 04:35    [W:0.079 / U:2.648 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site