|
|
@@ -885,16 +885,12 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode)
|
|
|
ei->i_disksize = 0;
|
|
|
|
|
|
/*
|
|
|
- * Don't inherit extent flag from directory. We set extent flag on
|
|
|
- * newly created directory and file only if -o extent mount option is
|
|
|
- * specified
|
|
|
+ * Don't inherit extent flag from directory, amongst others. We set
|
|
|
+ * extent flag on newly created directory and file only if -o extent
|
|
|
+ * mount option is specified
|
|
|
*/
|
|
|
- ei->i_flags = EXT4_I(dir)->i_flags & EXT4_FL_INHERITED;
|
|
|
- if (S_ISLNK(mode))
|
|
|
- ei->i_flags &= ~(EXT4_IMMUTABLE_FL|EXT4_APPEND_FL);
|
|
|
- /* dirsync only applies to directories */
|
|
|
- if (!S_ISDIR(mode))
|
|
|
- ei->i_flags &= ~EXT4_DIRSYNC_FL;
|
|
|
+ ei->i_flags =
|
|
|
+ ext4_mask_flags(mode, EXT4_I(dir)->i_flags & EXT4_FL_INHERITED);
|
|
|
ei->i_file_acl = 0;
|
|
|
ei->i_dtime = 0;
|
|
|
ei->i_block_group = group;
|