]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
vfs: don't evict uninitialized inode
authorMiklos Szeredi <mszeredi@redhat.com>
Tue, 24 Jul 2018 13:01:55 +0000 (15:01 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Oct 2018 06:56:04 +0000 (08:56 +0200)
commit90f06e1b81b9921290703aaf071aabb01f7ac012
treedd8baeca698028878f60cee138879887387b75e7
parentd08d1bb535f40510709935f6ccc662c7e2c95c79
vfs: don't evict uninitialized inode

commit e950564b97fd0f541b02eb207685d0746f5ecf29 upstream.

iput() ends up calling ->evict() on new inode, which is not yet initialized
by owning fs.  So use destroy_inode() instead.

Add to sb->s_inodes list only if inode is not in I_CREATING state (meaning
that it wasn't allocated with new_inode(), which already does the
insertion).

Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Fixes: 80ea09a002bf ("vfs: factor out inode_insert5()")
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/inode.c