mtd: mtdblock: remove the needless mtdblks_lock
authorGu Zheng <guz.fnst@cn.fujitsu.com>
Wed, 3 Dec 2014 02:19:52 +0000 (10:19 +0800)
committerBrian Norris <computersforpeace@gmail.com>
Wed, 7 Jan 2015 20:51:56 +0000 (12:51 -0800)
The global lock mtdblks_lock was used to protect the original mtdblks
array to avoid race conditions. As the mtdblks array was already gone,
but the mtdblks_lock is left, and it causes latency when open/release dev.
So we need to remove it here.

Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/mtdblock.c

index 485ea75..bb4c14f 100644 (file)
@@ -45,8 +45,6 @@ struct mtdblk_dev {
        enum { STATE_EMPTY, STATE_CLEAN, STATE_DIRTY } cache_state;
 };
 
-static DEFINE_MUTEX(mtdblks_lock);
-
 /*
  * Cache stuff...
  *
@@ -286,10 +284,8 @@ static int mtdblock_open(struct mtd_blktrans_dev *mbd)
 
        pr_debug("mtdblock_open\n");
 
-       mutex_lock(&mtdblks_lock);
        if (mtdblk->count) {
                mtdblk->count++;
-               mutex_unlock(&mtdblks_lock);
                return 0;
        }
 
@@ -302,8 +298,6 @@ static int mtdblock_open(struct mtd_blktrans_dev *mbd)
                mtdblk->cache_data = NULL;
        }
 
-       mutex_unlock(&mtdblks_lock);
-
        pr_debug("ok\n");
 
        return 0;
@@ -315,8 +309,6 @@ static void mtdblock_release(struct mtd_blktrans_dev *mbd)
 
        pr_debug("mtdblock_release\n");
 
-       mutex_lock(&mtdblks_lock);
-
        mutex_lock(&mtdblk->cache_mutex);
        write_cached_data(mtdblk);
        mutex_unlock(&mtdblk->cache_mutex);
@@ -331,8 +323,6 @@ static void mtdblock_release(struct mtd_blktrans_dev *mbd)
                vfree(mtdblk->cache_data);
        }
 
-       mutex_unlock(&mtdblks_lock);
-
        pr_debug("ok\n");
 }