ext3: don't inherit inappropriate inode flags from parent
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. This fixes the TOPDIR flag inheritance bug reported at http://bugzilla.kernel.org/show_bug.cgi?id=9866. Signed-off-by: Duane Griffin <duaneg@dghda.com> Acked-by: Andreas Dilger <adilger@sun.com> Cc: <linux-ext4@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
					parent
					
						
							
								5df096d67e
							
						
					
				
			
			
				commit
				
					
						2e8671cb56
					
				
			
		
					 2 changed files with 8 additions and 1 deletions
				
			
		|  | @ -559,7 +559,7 @@ got: | ||||||
| 	ei->i_dir_start_lookup = 0; | 	ei->i_dir_start_lookup = 0; | ||||||
| 	ei->i_disksize = 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)) | 	if (S_ISLNK(mode)) | ||||||
| 		ei->i_flags &= ~(EXT3_IMMUTABLE_FL|EXT3_APPEND_FL); | 		ei->i_flags &= ~(EXT3_IMMUTABLE_FL|EXT3_APPEND_FL); | ||||||
| 	/* dirsync only applies to directories */ | 	/* dirsync only applies to directories */ | ||||||
|  |  | ||||||
|  | @ -178,6 +178,13 @@ struct ext3_group_desc | ||||||
| #define EXT3_FL_USER_VISIBLE		0x0003DFFF /* User visible flags */ | #define EXT3_FL_USER_VISIBLE		0x0003DFFF /* User visible flags */ | ||||||
| #define EXT3_FL_USER_MODIFIABLE		0x000380FF /* User modifiable 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 |  * Inode dynamic state flags | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Duane Griffin
				Duane Griffin