From bb59ed2a71a42fd4baa0c36a4f87ed14e163e242 Mon Sep 17 00:00:00 2001 From: "Aneesh Kumar K.V" Date: Fri, 22 Feb 2008 06:17:31 -0500 Subject: [PATCH] --- yaml --- r: 86384 b: refs/heads/master c: 4cdeed861b5f797b3fa661eb331a6bd6ad669c6a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/ext4/namei.c | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 32be1b20d8fd..1a747e959eda 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b73fce69ecb091a178ef9286027c370a63eb25aa +refs/heads/master: 4cdeed861b5f797b3fa661eb331a6bd6ad669c6a diff --git a/trunk/fs/ext4/namei.c b/trunk/fs/ext4/namei.c index a9347fb43bcc..fffd0807a01b 100644 --- a/trunk/fs/ext4/namei.c +++ b/trunk/fs/ext4/namei.c @@ -1804,12 +1804,8 @@ static int ext4_mkdir(struct inode * dir, struct dentry * dentry, int mode) inode->i_fop = &ext4_dir_operations; inode->i_size = EXT4_I(inode)->i_disksize = inode->i_sb->s_blocksize; dir_block = ext4_bread (handle, inode, 0, 1, &err); - if (!dir_block) { - ext4_dec_count(handle, inode); /* is this nlink == 0? */ - ext4_mark_inode_dirty(handle, inode); - iput (inode); - goto out_stop; - } + if (!dir_block) + goto out_clear_inode; BUFFER_TRACE(dir_block, "get_write_access"); ext4_journal_get_write_access(handle, dir_block); de = (struct ext4_dir_entry_2 *) dir_block->b_data; @@ -1832,7 +1828,8 @@ static int ext4_mkdir(struct inode * dir, struct dentry * dentry, int mode) ext4_mark_inode_dirty(handle, inode); err = ext4_add_entry (handle, dentry, inode); if (err) { - inode->i_nlink = 0; +out_clear_inode: + clear_nlink(inode); ext4_mark_inode_dirty(handle, inode); iput (inode); goto out_stop;