From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759903AbYFSPmw (ORCPT ); Thu, 19 Jun 2008 11:42:52 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1758264AbYFSPmQ (ORCPT ); Thu, 19 Jun 2008 11:42:16 -0400 Received: from kumera.dghda.com ([80.68.90.171]:1496 "EHLO kumera.dghda.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758152AbYFSPmP (ORCPT ); Thu, 19 Jun 2008 11:42:15 -0400 From: "Duane Griffin" To: akpm@linux-foundation.org Cc: Andreas Dilger , "Aneesh Kumar K.V" , linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, Duane Griffin Subject: [PATCH 2/6] ext3: don't inherit inappropriate inode flags from parent Date: Thu, 19 Jun 2008 16:42:01 +0100 Message-Id: <1213890125-20186-3-git-send-email-duaneg@dghda.com> X-Mailer: git-send-email 1.5.4.5 In-Reply-To: <1213890125-20186-2-git-send-email-duaneg@dghda.com> References: <1213890125-20186-1-git-send-email-duaneg@dghda.com> <1213890125-20186-2-git-send-email-duaneg@dghda.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org At present INDEX is the only flag that new ext3 inodes do NOT inherit from their parent. In addition prevent the flags DIRTY, ECOMPR, IMAGIC and TOPDIR from being inherited. List inheritable flags explicitly to prevent future flags from accidentally being inherited. Signed-off-by: Duane Griffin -- This is v2 with inheritable flags now explicitly specified, as per Andreas' request. --- fs/ext3/ialloc.c | 2 +- include/linux/ext3_fs.h | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletions(-) diff --git a/fs/ext3/ialloc.c b/fs/ext3/ialloc.c index 7712682..1d9fe3f 100644 --- a/fs/ext3/ialloc.c +++ b/fs/ext3/ialloc.c @@ -559,7 +559,7 @@ got: ei->i_dir_start_lookup = 0; ei->i_disksize = 0; - ei->i_flags = EXT3_I(dir)->i_flags & ~EXT3_INDEX_FL; + ei->i_flags = EXT3_I(dir)->i_flags & EXT3_FL_INHERITED; if (S_ISLNK(mode)) ei->i_flags &= ~(EXT3_IMMUTABLE_FL|EXT3_APPEND_FL); /* dirsync only applies to directories */ diff --git a/include/linux/ext3_fs.h b/include/linux/ext3_fs.h index 36c5403..140190d 100644 --- a/include/linux/ext3_fs.h +++ b/include/linux/ext3_fs.h @@ -178,6 +178,13 @@ struct ext3_group_desc #define EXT3_FL_USER_VISIBLE 0x0003DFFF /* User visible flags */ #define EXT3_FL_USER_MODIFIABLE 0x000380FF /* User modifiable flags */ +/* Flags that should be inherited by new inodes from their parent. */ +#define EXT3_FL_INHERITED (EXT3_SECRM_FL | EXT3_UNRM_FL | EXT3_COMPR_FL |\ + EXT3_SYNC_FL | EXT3_IMMUTABLE_FL | EXT3_APPEND_FL |\ + EXT3_NODUMP_FL | EXT3_NOATIME_FL | EXT3_COMPRBLK_FL|\ + EXT3_NOCOMPR_FL | EXT3_JOURNAL_DATA_FL |\ + EXT3_NOTAIL_FL | EXT3_DIRSYNC_FL) + /* * Inode dynamic state flags */ -- 1.5.4.5