From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Hansen Subject: Re: [RFC][PATCH 1/2] fs: use RCU for free_super() vs. __sb_start_write() Date: Wed, 24 Jun 2015 13:21:26 -0700 Message-ID: <558B1146.5050106@sr71.net> References: <20150619223223.10B658AD@viggo.jf.intel.com> <20150623110933.GE2427@quack.suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, paulmck@linux.vnet.ibm.com, tim.c.chen@linux.intel.com, ak@linux.intel.com To: Jan Kara Return-path: In-Reply-To: <20150623110933.GE2427@quack.suse.cz> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On 06/23/2015 04:09 AM, Jan Kara wrote: >> @@ -1340,7 +1344,7 @@ int freeze_super(struct super_block *sb) >> printk(KERN_ERR >> "VFS:Filesystem freeze failed\n"); >> sb->s_writers.frozen = SB_UNFROZEN; >> - smp_wmb(); >> + synchronize_rcu(); > > Do we really need synchronize_rcu() here? We just need to make sure write > to sb->s_writers.frozen happens before we start waking processes... I don't think it is necessary. We only need to be concerned in practice if someone could be inside a critical section when we are executing this. I *think* the only case that we have that really matters will be taken care of by the _first_ synchronize_rcu(). It's definitely worth adding a comment.