|
From: <vl...@us...> - 2012-12-12 00:09:22
|
Revision: 4641
http://scst.svn.sourceforge.net/scst/?rev=4641&view=rev
Author: vlnb
Date: 2012-12-12 00:09:11 +0000 (Wed, 12 Dec 2012)
Log Message:
-----------
scst, persistent reservations: Fix a locking error
Avoid that a command like sg_raw -r256 /dev/sda 5e 04 00 00 00 00 00 20 00 00
triggers the following error messages on a kernel with PROVE_LOCKING enabled:
=====================================
[ BUG: bad unlock balance detected! ]
3.7.0-rc5-debug+ #1 Tainted: G O
-------------------------------------
disk010_1/9985 is trying to release lock (&dev->dev_pr_mutex) at:
[<ffffffff814b742e>] mutex_unlock+0xe/0x10
but there are no more locks to release!
other info that might help us debug this:
no locks held by disk010_1/9985.
stack backtrace:
Pid: 9985, comm: disk010_1 Tainted: G O 3.7.0-rc5-debug+ #1
Call Trace:
[<ffffffff8109598e>] print_unlock_inbalance_bug+0xfe/0x110
[<ffffffff81098bc6>] lock_release+0x1f6/0x260
[<ffffffff814b734a>] __mutex_unlock_slowpath+0x9a/0x170
[<ffffffff814b742e>] mutex_unlock+0xe/0x10
[<ffffffffa02d7d0f>] scst_pr_write_unlock+0x4f/0xd0 [scst]
[<ffffffffa02db83c>] scst_persistent_reserve_in_local+0x2cc/0x470 [scst]
[<ffffffffa02d99bf>] scst_do_local_exec+0x15f/0x1c0 [scst]
[<ffffffffa02e35d0>] scst_exec_check_blocking+0xd0/0x2c0 [scst]
[<ffffffffa02e3955>] scst_exec_check_sn+0x195/0x2f0 [scst]
[<ffffffffa02e5249>] scst_process_active_cmd+0x549/0x780 [scst]
[<ffffffffa02e5509>] scst_do_job_active+0x89/0x1a0 [scst]
[<ffffffffa02e5883>] scst_cmd_thread+0x183/0x310 [scst]
[<ffffffff81063ccd>] kthread+0xed/0x100
[<ffffffff814c2aac>] ret_from_fork+0x7c/0xb0
Signed-off-by: Bart Van Assche <bva...@ac...>
Revision Links:
--------------
http://scst.svn.sourceforge.net/scst/?rev=256&view=rev
Modified Paths:
--------------
trunk/scst/src/scst_targ.c
Modified: trunk/scst/src/scst_targ.c
===================================================================
--- trunk/scst/src/scst_targ.c 2012-12-11 02:57:16 UTC (rev 4640)
+++ trunk/scst/src/scst_targ.c 2012-12-12 00:09:11 UTC (rev 4641)
@@ -2190,7 +2190,6 @@
break;
default:
PRINT_ERROR("Unsupported action %x", action);
- scst_pr_write_unlock(dev);
goto out_unsup_act;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|