From: Tahsin Erdogan <tahsin@google.com>
To: Jan Kara <jack@suse.com>, "Theodore Ts'o" <tytso@mit.edu>,
Andreas Dilger <adilger.kernel@dilger.ca>,
Dave Kleikamp <shaggy@kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Mark Fasheh <mfasheh@versity.com>,
Joel Becker <jlbec@evilplan.org>, Jens Axboe <axboe@fb.com>,
Deepa Dinamani <deepa.kernel@gmail.com>,
Mike Christie <mchristi@redhat.com>,
Fabian Frederick <fabf@skynet.be>,
linux-ext4@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
jfs-discussion@lists.sourceforge.net,
linux-fsdevel@vger.kernel.org, ocfs2-devel@oss.oracle.com,
reiserfs-devel@vger.kernel.org,
Tahsin Erdogan <tahsin@google.com>
Subject: [PATCH 03/28] ext4: lock inode before calling ext4_orphan_add()
Date: Wed, 31 May 2017 01:14:52 -0700 [thread overview]
Message-ID: <20170531081517.11438-3-tahsin@google.com> (raw)
In-Reply-To: <20170531081517.11438-1-tahsin@google.com>
ext4_orphan_add() requires caller to be holding the inode lock.
Add missing lock statements.
WARNING: CPU: 3 PID: 1806 at fs/ext4/namei.c:2731 ext4_orphan_add+0x4e/0x240
CPU: 3 PID: 1806 Comm: python Not tainted 4.12.0-rc1+ #746
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
task: ffff880135d466c0 task.stack: ffffc900014b0000
RIP: 0010:ext4_orphan_add+0x4e/0x240
RSP: 0018:ffffc900014b3d50 EFLAGS: 00010246
RAX: 0000000000000000 RBX: ffff8801348fe1f0 RCX: ffffc900014b3c64
RDX: 0000000000000000 RSI: ffff8801348fe1f0 RDI: ffff8801348fe1f0
RBP: ffffc900014b3da0 R08: 0000000000000000 R09: ffffffff80e82025
R10: 0000000000004692 R11: 000000000000468d R12: ffff880137598000
R13: ffff880137217000 R14: ffff880134ac58d0 R15: 0000000000000000
FS: 00007fc50f09e740(0000) GS:ffff88013fd80000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000008bc2e0 CR3: 00000001375ac000 CR4: 00000000000006e0
Call Trace:
ext4_xattr_inode_orphan_add.constprop.19+0x9d/0xf0
ext4_xattr_delete_inode+0x1c4/0x2f0
ext4_evict_inode+0x15a/0x7f0
evict+0xc0/0x1a0
iput+0x16a/0x270
do_unlinkat+0x172/0x290
SyS_unlink+0x11/0x20
entry_SYSCALL_64_fastpath+0x18/0xad
Signed-off-by: Tahsin Erdogan <tahsin@google.com>
---
fs/ext4/xattr.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
index 26d2705950a5..09ba0137d529 100644
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -1963,7 +1963,9 @@ ext4_xattr_inode_orphan_add(handle_t *handle, struct inode *inode,
lea_ino_array->xia_inodes[idx], &error);
if (error)
continue;
+ inode_lock(ea_inode);
ext4_orphan_add(handle, ea_inode);
+ inode_unlock(ea_inode);
/* the inode's i_count will be released by caller */
}
--
2.13.0.219.gdb65acc882-goog
next prev parent reply other threads:[~2017-05-31 8:16 UTC|newest]
Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-31 8:14 [PATCH 01/28] ext4: xattr-in-inode support Tahsin Erdogan
2017-05-31 8:14 ` [PATCH 02/28] ext4: fix lockdep warning about recursive inode locking Tahsin Erdogan
2017-05-31 8:14 ` Tahsin Erdogan [this message]
2017-05-31 8:14 ` [PATCH 04/28] ext4: do not set posix acls on xattr inodes Tahsin Erdogan
2017-05-31 8:14 ` [PATCH 05/28] ext4: attach jinode after creation of xattr inode Tahsin Erdogan
2017-05-31 8:14 ` [PATCH 06/28] ext4: ea_inode owner should be the same as the inode owner Tahsin Erdogan
2017-05-31 8:14 ` [PATCH 07/28] ext4: call journal revoke when freeing ea_inode blocks Tahsin Erdogan
2017-05-31 16:12 ` Darrick J. Wong
2017-05-31 16:12 ` [Ocfs2-devel] " Darrick J. Wong
2017-05-31 16:12 ` Darrick J. Wong
2017-05-31 21:01 ` Tahsin Erdogan
2017-06-05 22:08 ` Andreas Dilger
2017-05-31 8:14 ` [PATCH 08/28] ext4: fix ref counting for ea_inode Tahsin Erdogan
2017-05-31 8:14 ` [PATCH 09/28] ext4: extended attribute value size limit is enforced by vfs Tahsin Erdogan
2017-05-31 16:03 ` Darrick J. Wong
2017-05-31 16:03 ` [Ocfs2-devel] " Darrick J. Wong
2017-05-31 16:03 ` Darrick J. Wong
2017-05-31 16:13 ` Tahsin Erdogan
2017-05-31 8:14 ` [PATCH 10/28] ext4: change ext4_xattr_inode_iget() signature Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 11/28] ext4: clean up ext4_xattr_inode_get() Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 12/28] ext4: add missing le32_to_cpu(e_value_inum) conversions Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 13/28] ext4: ext4_xattr_value_same() should return false for external data Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 14/28] ext4: fix ext4_xattr_make_inode_space() value size calculation Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 15/28] ext4: fix ext4_xattr_move_to_block() Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 16/28] ext4: fix ext4_xattr_cmp() Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 17/28] ext4: fix credits calculation for xattr inode Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 18/28] ext4: retry storing value in external inode with xattr block too Tahsin Erdogan
2017-06-20 8:56 ` [PATCH v2 18/31] " Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 19/28] ext4: ext4_xattr_delete_inode() should return accurate errors Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 20/28] ext4: improve journal credit handling in set xattr paths Tahsin Erdogan
2017-06-20 8:59 ` [PATCH v2 20/31] " Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 21/28] ext4: modify ext4_xattr_ino_array to hold struct inode * Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 22/28] ext4: move struct ext4_xattr_inode_array to xattr.h Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 23/28] mbcache: make mbcache more generic Tahsin Erdogan
2017-06-15 7:41 ` Jan Kara
2017-06-15 7:41 ` [Ocfs2-devel] " Jan Kara
2017-06-15 18:25 ` Tahsin Erdogan
2017-06-19 8:50 ` Jan Kara
2017-06-19 8:50 ` [Ocfs2-devel] " Jan Kara
2017-06-20 9:01 ` [PATCH v2 23/31] mbcache: make mbcache naming " Tahsin Erdogan
2017-06-21 17:43 ` Andreas Dilger
2017-06-21 18:33 ` Andreas Dilger
2017-06-21 21:39 ` Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 24/28] ext4: rename mb block cache functions Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 25/28] ext4: add ext4_is_quota_file() Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 26/28] ext4: cleanup transaction restarts during inode deletion Tahsin Erdogan
2017-06-14 14:17 ` [PATCH v2 " Tahsin Erdogan
2017-06-15 0:11 ` Andreas Dilger
2017-06-15 0:11 ` [Ocfs2-devel] " Andreas Dilger
2017-06-20 9:04 ` [PATCH v3 " Tahsin Erdogan
2017-06-20 9:29 ` Tahsin Erdogan
2017-05-31 8:15 ` [PATCH 27/28] ext4: xattr inode deduplication Tahsin Erdogan
2017-05-31 15:40 ` kbuild test robot
2017-05-31 15:40 ` [Ocfs2-devel] " kbuild test robot
2017-05-31 15:50 ` kbuild test robot
2017-05-31 15:50 ` [Ocfs2-devel] " kbuild test robot
2017-05-31 16:00 ` Darrick J. Wong
2017-05-31 16:00 ` [Ocfs2-devel] " Darrick J. Wong
2017-05-31 16:00 ` Darrick J. Wong
2017-05-31 22:33 ` [PATCH v2 " Tahsin Erdogan
2017-06-02 5:41 ` Darrick J. Wong
2017-06-02 5:41 ` [Ocfs2-devel] " Darrick J. Wong
2017-06-02 5:41 ` Darrick J. Wong
2017-06-02 12:46 ` Tahsin Erdogan
2017-06-02 17:59 ` Darrick J. Wong
2017-06-02 17:59 ` [Ocfs2-devel] " Darrick J. Wong
2017-06-02 17:59 ` Darrick J. Wong
2017-06-02 23:35 ` [PATCH v3 " Tahsin Erdogan
2017-06-14 14:34 ` [PATCH v4 " Tahsin Erdogan
2017-06-14 23:26 ` Andreas Dilger
2017-06-20 9:07 ` [PATCH v5 " Tahsin Erdogan
2017-06-20 9:49 ` Tahsin Erdogan
2017-06-21 17:42 ` Andreas Dilger
2017-06-21 21:14 ` Andreas Dilger
2017-06-21 21:34 ` Tahsin Erdogan
2017-06-21 21:42 ` Andreas Dilger
2017-07-04 18:39 ` Theodore Ts'o
2017-07-05 17:30 ` Tahsin Erdogan
2017-07-06 4:19 ` Theodore Ts'o
2017-05-31 8:15 ` [PATCH 28/28] quota: add extra inode count to dquot transfer functions Tahsin Erdogan
2017-06-15 7:57 ` Jan Kara
2017-06-15 7:57 ` [Ocfs2-devel] " Jan Kara
2017-06-17 1:50 ` Tahsin Erdogan
2017-06-19 9:03 ` Jan Kara
2017-06-19 9:03 ` [Ocfs2-devel] " Jan Kara
2017-06-19 11:46 ` Tahsin Erdogan
2017-06-19 12:36 ` Jan Kara
2017-06-19 12:36 ` [Ocfs2-devel] " Jan Kara
2017-06-20 9:12 ` [PATCH v2 28/31] quota: add get_inode_usage callback to transfer multi-inode charges Tahsin Erdogan
2017-06-20 12:01 ` Tahsin Erdogan
2017-06-20 15:28 ` Jan Kara
2017-06-20 18:08 ` [PATCH v3 " Tahsin Erdogan
2017-06-21 4:48 ` Theodore Ts'o
2017-06-21 11:22 ` Tahsin Erdogan
2017-06-20 9:53 ` [PATCH 28/28] quota: add extra inode count to dquot transfer functions Tahsin Erdogan
2017-05-31 16:42 ` [PATCH 01/28] ext4: xattr-in-inode support Darrick J. Wong
2017-05-31 16:42 ` [Ocfs2-devel] " Darrick J. Wong
2017-05-31 16:42 ` Darrick J. Wong
2017-05-31 19:59 ` Tahsin Erdogan
2017-06-01 15:50 ` [PATCH v2 " Tahsin Erdogan
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=20170531081517.11438-3-tahsin@google.com \
--to=tahsin@google.com \
--cc=adilger.kernel@dilger.ca \
--cc=axboe@fb.com \
--cc=deepa.kernel@gmail.com \
--cc=fabf@skynet.be \
--cc=jack@suse.com \
--cc=jfs-discussion@lists.sourceforge.net \
--cc=jlbec@evilplan.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mchristi@redhat.com \
--cc=mfasheh@versity.com \
--cc=ocfs2-devel@oss.oracle.com \
--cc=reiserfs-devel@vger.kernel.org \
--cc=shaggy@kernel.org \
--cc=tytso@mit.edu \
--cc=viro@zeniv.linux.org.uk \
/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.