From: Eric Sandeen <sandeen@redhat.com>
To: "linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>
Cc: ext4 development <linux-ext4@vger.kernel.org>
Subject: [PATCH 3/6 V2] ext4: fix up error handling for insert_inode_locked
Date: Tue, 06 Dec 2011 17:19:39 -0600 [thread overview]
Message-ID: <4EDEA30B.8000300@redhat.com> (raw)
In-Reply-To: <4EDE9F21.30405@redhat.com>
after 250df6ed274d767da844a5d9f05720b804240197
(fs: protect inode->i_state with inode->i_lock), insert_inode_locked()
no longer returns the inode with I_NEW set on failure. However,
the error handler still calls unlock_new_inode() on failure,
which does a WARN_ON if I_NEW is not set, so any failure spews
a lot of warnings.
(We also were doing dquot_drop, etc before we had initialized
the quota, that gets skipped as well)
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---
V2: don't rearrange clear_nlink, and edit commit message.
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
index 00beb4f..1e0c3bf 100644
--- a/fs/ext4/ialloc.c
+++ b/fs/ext4/ialloc.c
@@ -886,7 +886,7 @@ got:
ext4_handle_sync(handle);
if (insert_inode_locked(inode) < 0) {
err = -EINVAL;
- goto fail_drop;
+ goto fail_put;
}
spin_lock(&sbi->s_next_gen_lock);
inode->i_generation = sbi->s_next_generation++;
@@ -950,6 +950,7 @@ fail_drop:
inode->i_flags |= S_NOQUOTA;
clear_nlink(inode);
unlock_new_inode(inode);
+fail_put:
iput(inode);
brelse(inode_bitmap_bh);
return ERR_PTR(err);
next prev parent reply other threads:[~2011-12-06 23:19 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-06 22:55 [PATCH 0/6] fs: fix up error handlers for insert_inode_locked Eric Sandeen
2011-12-06 22:57 ` [PATCH 1/6] ext2: fix up error handling " Eric Sandeen
2011-12-06 23:18 ` [PATCH 1/6 v2] " Eric Sandeen
2011-12-06 22:59 ` [PATCH 2/6] ext3: " Eric Sandeen
2011-12-06 23:19 ` [PATCH 2/6 V2] " Eric Sandeen
2011-12-06 23:02 ` [PATCH 3/6] ext4: " Eric Sandeen
2011-12-06 23:19 ` Eric Sandeen [this message]
2011-12-06 23:06 ` [PATCH 4/6] jffs2: " Eric Sandeen
2011-12-08 21:54 ` Artem Bityutskiy
2011-12-06 23:10 ` [PATCH 5/6] jfs: " Eric Sandeen
2011-12-06 23:12 ` [PATCH 6/6] reiserfs: fix up error handling for insert_inode_locked4 Eric Sandeen
2011-12-06 23:13 ` [PATCH 0/6] fs: fix up error handlers for insert_inode_locked Eric Sandeen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EDEA30B.8000300@redhat.com \
--to=sandeen@redhat.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.