diff mbox

[RESEND,1/3] mtd:mtdblock: remove the needless mtdblks_lock

Message ID 547E7348.5020204@cn.fujitsu.com
State Accepted
Commit 362376a7c65936835f39ff29b082a646d522efbc
Headers show

Commit Message

Gu Zheng Dec. 3, 2014, 2:19 a.m. UTC
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>
---
 drivers/mtd/mtdblock.c |   10 ----------
 1 files changed, 0 insertions(+), 10 deletions(-)

Comments

Brian Norris Jan. 7, 2015, 8:59 p.m. UTC | #1
On Wed, Dec 03, 2014 at 10:19:52AM +0800, Gu Zheng wrote:
> 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>

Pushed this first patch to l2-mtd.git. Thanks!

I'm kinda ambivalent about the next two. They don't seem like necessary
cleanups, really. With the third patch, I think it's actually pretty
important that the caller understand that it's using container_of(). I
could be convinced otherwise though...

Brian
Gu Zheng Jan. 8, 2015, 12:43 a.m. UTC | #2
Hi Brian,
On 01/08/2015 04:59 AM, Brian Norris wrote:

> On Wed, Dec 03, 2014 at 10:19:52AM +0800, Gu Zheng wrote:
>> 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>
> 
> Pushed this first patch to l2-mtd.git. Thanks!

Thanks.

> 
> I'm kinda ambivalent about the next two. They don't seem like necessary
> cleanups, really. With the third patch, I think it's actually pretty
> important that the caller understand that it's using container_of(). I
> could be convinced otherwise though...

OK.

Regards,
Gu

> 
> Brian
>
diff mbox

Patch

diff --git a/drivers/mtd/mtdblock.c b/drivers/mtd/mtdblock.c
index 485ea75..bb4c14f 100644
--- a/drivers/mtd/mtdblock.c
+++ b/drivers/mtd/mtdblock.c
@@ -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");
 }