Arnd Bergmann
c45d15d24e
scsi: autoconvert trivial BKL users to private mutex
...
All these files use the big kernel lock in a trivial
way to serialize their private file operations,
typically resulting from an earlier semi-automatic
pushdown from VFS.
None of these drivers appears to want to lock against
other code, and they all use the BKL as the top-level
lock in their file operations, meaning that there
is no lock-order inversion problem.
Consequently, we can remove the BKL completely,
replacing it with a per-file mutex in every case.
Using a scripted approach means we can avoid
typos.
file=$1
name=$2
if grep -q lock_kernel ${file} ; then
if grep -q 'include.*linux.mutex.h' ${file} ; then
sed -i '/include.*<linux\/smp_lock.h>/d' ${file}
else
sed -i 's/include.*<linux\/smp_lock.h>.*$/include <linux\/mutex.h>/g' ${file}
fi
sed -i ${file} \
-e "/^#include.*linux.mutex.h/,$ {
1,/^\(static\|int\|long\)/ {
/^\(static\|int\|long\)/istatic DEFINE_MUTEX(${name}_mutex);
} }" \
-e "s/\(un\)*lock_kernel\>[ ]*()/mutex_\1lock(\&${name}_mutex)/g" \
-e '/[ ]*cycle_kernel_lock();/d'
else
sed -i -e '/include.*\<smp_lock.h\>/d' ${file} \
-e '/cycle_kernel_lock()/d'
fi
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: linux-scsi@vger.kernel.org
Cc: "James E.J. Bottomley" <James.Bottomley@suse.de>
2010-09-15 21:00:45 +02:00
..
2010-09-15 21:00:45 +02:00
2010-07-28 09:05:27 -05:00
2010-07-12 18:03:50 +02:00
2010-08-11 08:59:00 -07:00
2010-08-17 18:07:43 -07:00
2010-02-18 17:24:21 +00:00
2010-09-02 17:13:09 -03:00
2010-08-12 10:01:59 -07:00
2010-08-11 08:59:01 -07:00
2010-08-04 15:15:15 -07:00
2010-07-28 09:05:43 -05:00
2009-06-12 18:01:46 +02:00
2010-08-04 15:31:02 -07:00
2010-08-11 08:59:01 -07:00
2010-08-06 12:26:39 -05:00
2010-08-06 11:00:26 -05:00
2010-07-28 09:07:49 -05:00
2010-08-14 12:34:34 -07:00
2010-09-15 21:00:45 +02:00
2010-09-15 21:00:45 +02:00
2010-07-28 09:07:49 -05:00
2010-09-02 17:11:55 -03:00
2010-08-03 09:04:14 +02:00
2010-08-06 12:06:08 -05:00
2010-09-05 15:22:55 -03:00
2010-08-20 09:34:56 -07:00
2010-09-02 17:23:20 -03:00
2010-09-15 21:00:45 +02:00
2010-04-11 09:23:25 -05:00
2010-09-15 21:00:45 +02:00
2009-12-04 12:00:51 -06:00
2010-09-15 21:00:45 +02:00
2010-04-11 09:23:25 -05:00
2010-08-11 08:59:21 -07:00
2010-03-30 22:02:32 +09:00
2010-05-26 19:51:08 +02:00
2010-05-26 19:51:07 +02:00
2010-05-26 19:51:08 +02:00
2010-05-26 19:51:07 +02:00
2010-05-26 19:51:09 +02:00
2010-06-16 18:05:05 +02:00
2010-03-30 22:02:32 +09:00
2010-08-07 18:15:46 +02:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2009-03-26 21:15:29 +01:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-09-15 21:00:45 +02:00
2010-09-02 17:15:31 -03:00
2010-08-11 08:59:00 -07:00
2009-12-04 23:41:47 +01:00
2010-09-15 21:00:45 +02:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-01-18 10:48:10 -06:00
2008-08-29 02:13:10 -07:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-01-18 10:48:14 -06:00
2010-08-11 08:59:00 -07:00
2010-08-11 08:59:00 -07:00
2010-01-18 10:48:16 -06:00
2010-03-30 22:02:32 +09:00
2010-01-18 10:48:16 -06:00
2010-09-15 21:00:45 +02:00
2010-01-18 10:48:16 -06:00
2010-05-26 19:51:08 +02:00
2010-05-26 19:51:08 +02:00
2010-07-28 09:07:50 -05:00
2010-07-27 12:02:00 -05:00
2010-09-02 17:14:44 -03:00
2010-07-27 12:01:15 -05:00
2010-07-27 12:01:01 -05:00
2009-10-02 09:45:22 -05:00
2010-01-18 10:48:08 -06:00
2010-03-30 22:02:32 +09:00
2008-12-29 11:24:12 -06:00
2010-08-11 08:59:00 -07:00
2008-12-29 11:24:12 -06:00
2010-07-28 09:05:40 -05:00
2010-07-27 12:03:55 -05:00
2009-04-07 08:31:11 -07:00
2008-08-23 12:14:12 -07:00
2010-08-06 10:45:07 -05:00
2010-05-25 10:04:10 -05:00
2010-04-11 14:04:05 -05:00
2010-03-30 22:02:32 +09:00
2010-08-14 12:34:34 -07:00
2010-03-30 22:02:32 +09:00
2010-04-11 14:03:59 -05:00
2010-05-02 11:16:50 -04:00
2010-03-30 22:02:32 +09:00
2010-06-02 17:50:38 +10:00
2010-03-30 22:02:32 +09:00
2008-12-28 20:00:03 +01:00
2010-08-06 10:45:07 -05:00
2010-09-15 21:00:45 +02:00
2010-05-17 05:27:04 +02:00
2010-06-02 17:50:38 +10:00
2010-03-30 22:02:32 +09:00
2010-05-26 19:51:07 +02:00
2010-05-02 15:55:03 -04:00
2010-03-30 22:02:32 +09:00
2010-08-11 08:59:00 -07:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2008-07-27 10:31:49 -04:00
2010-03-30 22:02:32 +09:00
2008-08-23 12:14:12 -07:00
2010-09-15 21:00:45 +02:00
2009-03-12 12:58:10 -05:00
2010-07-28 09:05:26 -05:00
2010-07-27 12:01:35 -05:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-04-05 15:37:12 -07:00
2009-05-20 17:21:13 -05:00
2008-12-29 11:24:12 -06:00
2010-08-06 09:25:50 -06:00
2010-08-06 09:25:50 -06:00
2010-03-03 21:17:06 +05:30
2010-07-27 12:03:55 -05:00
2010-03-30 22:02:32 +09:00
2010-08-14 12:34:34 -07:00
2009-12-04 12:01:33 -06:00
2009-12-04 12:01:30 -06:00
2010-09-09 09:58:18 -05:00
2010-03-30 22:02:32 +09:00
2010-07-28 09:07:50 -05:00
2010-08-06 09:17:02 -07:00
2010-03-30 22:02:32 +09:00
2010-02-08 17:15:19 -06:00
2010-07-28 09:07:50 -05:00
2009-11-18 08:37:40 -08:00
2010-08-06 09:17:02 -07:00
2010-09-15 21:00:45 +02:00
2010-08-11 00:55:42 -04:00
2008-07-27 10:31:49 -04:00
2010-04-30 12:52:08 -05:00
2010-08-11 08:59:02 -07:00
2010-07-28 09:06:06 -05:00
2010-02-08 17:15:19 -06:00
2010-03-30 22:02:32 +09:00
2009-01-02 10:22:16 -06:00
2009-04-21 19:40:00 -07:00
2010-04-30 12:51:10 -05:00
2010-03-30 22:02:32 +09:00
2009-11-26 08:54:46 -06:00
2010-09-07 10:31:54 -05:00
2010-08-07 18:26:08 +02:00
2010-03-30 22:02:32 +09:00
2010-09-15 21:00:45 +02:00
2010-03-07 17:04:50 -08:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-08-07 18:25:34 +02:00
2010-05-27 09:12:56 -07:00
2009-12-10 08:54:13 -06:00
2010-03-30 22:02:32 +09:00
2010-08-07 18:17:56 +02:00
2010-08-07 18:17:56 +02:00
2010-08-07 18:17:56 +02:00
2010-03-30 22:02:32 +09:00
2010-08-06 09:25:50 -06:00
2008-12-29 11:24:12 -06:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2009-12-04 12:00:49 -06:00
2010-05-02 15:54:15 -04:00
2010-05-02 15:54:15 -04:00
2010-04-11 13:37:33 -05:00
2009-06-25 11:37:23 -05:00
2010-05-17 21:37:41 +02:00