Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752446AbbEGH6f (ORCPT ); Thu, 7 May 2015 03:58:35 -0400 Received: from cantor2.suse.de ([195.135.220.15]:45665 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751608AbbEGH6c (ORCPT ); Thu, 7 May 2015 03:58:32 -0400 Date: Thu, 7 May 2015 09:58:26 +0200 From: Jan Kara To: Fabian Frederick Cc: linux-kernel@vger.kernel.org, Andrew Morton , Alexander Viro , Jan Kara Subject: Re: [PATCH V2 1/2 linux-next] affs: mark new inode before hashtable insertion Message-ID: <20150507075826.GA29914@quack.suse.cz> References: <1430927693-19280-1-git-send-email-fabf@skynet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1430927693-19280-1-git-send-email-fabf@skynet.be> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2562 Lines: 94 On Wed 06-05-15 17:54:52, Fabian Frederick wrote: > AFFS didn't mark new inode to I_NEW state like other FS > using insert_inode_locked() during creation. > This patch also unlocks inode when setup is complete > or operation failed. > > Problem appeared when trying to add tmpfile support. > > Cc: Andrew Morton > Cc: Alexander Viro > Cc: Jan Kara > Suggested-by: Jan Kara > Signed-off-by: Fabian Frederick Looks good. You can add: Reviewed-by: Jan Kara Honza > --- > V2: -remove insert_inode_hash() to avoid double insert > -update patch subject > > fs/affs/inode.c | 4 ++-- > fs/affs/namei.c | 6 ++++++ > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/fs/affs/inode.c b/fs/affs/inode.c > index 1734950..a9dbb41 100644 > --- a/fs/affs/inode.c > +++ b/fs/affs/inode.c > @@ -323,8 +323,8 @@ affs_new_inode(struct inode *dir) > AFFS_I(inode)->i_pa_cnt = 0; > AFFS_I(inode)->i_extcnt = 1; > AFFS_I(inode)->i_ext_last = ~1; > - > - insert_inode_hash(inode); > + if (insert_inode_locked(inode) < 0) > + goto err_inode; > > return inode; > > diff --git a/fs/affs/namei.c b/fs/affs/namei.c > index 181e05b..b183540 100644 > --- a/fs/affs/namei.c > +++ b/fs/affs/namei.c > @@ -281,9 +281,11 @@ affs_create(struct inode *dir, struct dentry *dentry, umode_t mode, bool excl) > error = affs_add_entry(dir, inode, dentry, ST_FILE); > if (error) { > clear_nlink(inode); > + unlock_new_inode(inode); > iput(inode); > return error; > } > + unlock_new_inode(inode); > return 0; > } > > @@ -310,9 +312,11 @@ affs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) > if (error) { > clear_nlink(inode); > mark_inode_dirty(inode); > + unlock_new_inode(inode); > iput(inode); > return error; > } > + unlock_new_inode(inode); > return 0; > } > > @@ -391,11 +395,13 @@ affs_symlink(struct inode *dir, struct dentry *dentry, const char *symname) > if (error) > goto err; > > + unlock_new_inode(inode); > return 0; > > err: > clear_nlink(inode); > mark_inode_dirty(inode); > + unlock_new_inode(inode); > iput(inode); > return error; > } > -- > 2.4.0 > -- Jan Kara SUSE Labs, CR -- 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/