[PATCH 0/6][REPOST] ext{2,3,4}: tighten inheritance and setting of inode flags

From: Duane Griffin
Date: Wed Dec 03 2008 - 15:32:35 EST

This patch series prevents the inheritance and setting of flags that are
inappropriate for specific inode types.

Flags which should be inherited are listed explicitly so as to prevent
future flags being overlooked and inherited by accident.

It introduces a function to mask flags based on the inode type and uses
it in inode creation and the SETFLAGS ioctl to help prevent future

Patches 1-3 fix the TOPDIR flag inheritance bug reported at

Patches 4-6 fix a related problem with non-regular file/dir inodes
inheriting inappropriate flags, discovered while testing. For example,
on an unpatched system, the following sequence will create an
un(re)movable device node:

mkdir a
chattr +a a
touch a/a
mknod a/b c 1 3
chattr -a a a/a

All attempts to delete, move or modify a/b will fail. Fsck will report
there is a problem but will not fix it.

Diffstat from linux-next:
fs/ext2/ialloc.c | 8 ++------
fs/ext2/ioctl.c | 3 +--
fs/ext3/ialloc.c | 8 ++------
fs/ext3/ioctl.c | 3 +--
fs/ext4/ext4.h | 25 +++++++++++++++++++++++++
fs/ext4/ialloc.c | 14 +++++---------
fs/ext4/ioctl.c | 3 +--
include/linux/ext2_fs.h | 24 ++++++++++++++++++++++++
include/linux/ext3_fs.h | 24 ++++++++++++++++++++++++
9 files changed, 85 insertions(+), 27 deletions(-)
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/