]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ext4: add ext4_iget_normal() which is to be used for dir tree lookups
authorTheodore Ts'o <tytso@mit.edu>
Mon, 6 Oct 2014 02:56:00 +0000 (22:56 -0400)
committerZefan Li <lizefan@huawei.com>
Mon, 2 Feb 2015 09:04:53 +0000 (17:04 +0800)
commit07cf4db32b426b6b9d649cac784a4b199001fbd1
tree3cb4711ecbc0c33f82bc32dcc424cfc61e162cdc
parent07048f9e15e456be7d216e6f4515c33cafc6fc2b
ext4: add ext4_iget_normal() which is to be used for dir tree lookups

commit f4bb2981024fc91b23b4d09a8817c415396dbabb upstream.

If there is a corrupted file system which has directory entries that
point at reserved, metadata inodes, prohibit them from being used by
treating them the same way we treat Boot Loader inodes --- that is,
mark them to be bad inodes.  This prohibits them from being opened,
deleted, or modified via chmod, chown, utimes, etc.

In particular, this prevents a corrupted file system which has a
directory entry which points at the journal inode from being deleted
and its blocks released, after which point Much Hilarity Ensues.

Reported-by: Sami Liedes <sami.liedes@iki.fi>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Zefan Li <lizefan@huawei.com>
fs/ext4/ext4.h
fs/ext4/inode.c
fs/ext4/namei.c
fs/ext4/super.c