From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754794Ab2HaSl2 (ORCPT ); Fri, 31 Aug 2012 14:41:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53881 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753449Ab2HaSl0 (ORCPT ); Fri, 31 Aug 2012 14:41:26 -0400 Date: Fri, 31 Aug 2012 14:41:15 -0400 (EDT) From: Mikulas Patocka X-X-Sender: mpatocka@file.rdu.redhat.com To: Eric Dumazet cc: Jens Axboe , Andrea Arcangeli , Jan Kara , dm-devel@redhat.com, linux-kernel@vger.kernel.org, Jeff Moyer , Alexander Viro , kosaki.motohiro@jp.fujitsu.com, linux-fsdevel@vger.kernel.org, lwoodman@redhat.com, "Alasdair G. Kergon" Subject: [PATCH 1/4] Add a lock that will be needed by the next patch In-Reply-To: Message-ID: References: <20120628111541.GB17515@quack.suse.cz> <1343508252.2626.13184.camel@edumazet-glaptop> <1343556630.2626.13257.camel@edumazet-glaptop> <1343586962.2626.13266.camel@edumazet-glaptop> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add a lock that will be needed by the next patch. I am submitting this as a separate patch, because the act of adding an extra field to "struct block_device" affects performance significantly. So that performance change from adding the lock field can be differentiated from the performance change of locking. Signed-off-by: Mikulas Patocka --- drivers/char/raw.c | 2 - fs/block_dev.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++-- include/linux/fs.h | 4 +++ 3 files changed, 63 insertions(+), 3 deletions(-) Index: linux-3.5-rc6-devel/include/linux/fs.h =================================================================== --- linux-3.5-rc6-devel.orig/include/linux/fs.h 2012-07-16 20:20:12.000000000 +0200 +++ linux-3.5-rc6-devel/include/linux/fs.h 2012-07-16 01:29:21.000000000 +0200 @@ -713,6 +713,8 @@ struct block_device { int bd_fsfreeze_count; /* Mutex for freeze */ struct mutex bd_fsfreeze_mutex; + /* A semaphore that prevents I/O while block size is being changed */ + struct rw_semaphore bd_block_size_semaphore; }; /*