Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753410AbbFAOWu (ORCPT ); Mon, 1 Jun 2015 10:22:50 -0400 Received: from mail-qg0-f50.google.com ([209.85.192.50]:35446 "EHLO mail-qg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752296AbbFAOWl (ORCPT ); Mon, 1 Jun 2015 10:22:41 -0400 MIME-Version: 1.0 X-Originating-IP: [217.173.38.102] In-Reply-To: <21902.1433166736@warthog.procyon.org.uk> References: <21902.1433166736@warthog.procyon.org.uk> Date: Mon, 1 Jun 2015 16:22:40 +0200 Message-ID: Subject: Re: Can ovl_drop_write() be called earlier in ovl_dentry_open() From: Miklos Szeredi To: David Howells Cc: Al Viro , Kernel Mailing List , Linux-Fsdevel , "linux-unionfs@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1511 Lines: 45 On Mon, Jun 1, 2015 at 3:52 PM, David Howells wrote: > In ovl_dentry_open(), ovl_drop_write() is called after vfs_open() - but is > this actually necessary? Can't we just drop it post-copyup? After all, > that's all we wanted the write lock for, right? Hmm, that could result in a race where remount r/o of upper fs comes in between copy-up and vfs_open() so copy-up succeeds but the actual open fails. It's harmless, though, and not very likely. So I guess your patch is OK. Thanks, Miklos > > David > --- > --- a/fs/overlayfs/inode.c > +++ b/fs/overlayfs/inode.c > @@ -356,16 +356,14 @@ static int ovl_dentry_open(struct dentry *dentry, struct inode *inode, > err = ovl_copy_up_last(dentry, NULL, true); > else > err = ovl_copy_up(dentry); > + ovl_drop_write(dentry); > if (err) > - goto out_drop_write; > + goto out; > > ovl_path_upper(dentry, &realpath); > } > > err = vfs_open(&realpath, d_backing_inode(realpath.dentry), file, cred); > -out_drop_write: > - if (want_write) > - ovl_drop_write(dentry); > out: > return err; > } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/