|
@@ -771,7 +771,8 @@ struct inode *__ext4_new_inode(handle_t *handle, struct inode *dir,
|
|
|
|
|
|
if ((ext4_encrypted_inode(dir) ||
|
|
|
DUMMY_ENCRYPTION_ENABLED(EXT4_SB(dir->i_sb))) &&
|
|
|
- (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode))) {
|
|
|
+ (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode)) &&
|
|
|
+ !(i_flags & EXT4_EA_INODE_FL)) {
|
|
|
err = fscrypt_get_encryption_info(dir);
|
|
|
if (err)
|
|
|
return ERR_PTR(err);
|
|
@@ -1114,11 +1115,11 @@ got:
|
|
|
err = ext4_init_acl(handle, inode, dir);
|
|
|
if (err)
|
|
|
goto fail_free_drop;
|
|
|
- }
|
|
|
|
|
|
- err = ext4_init_security(handle, inode, dir, qstr);
|
|
|
- if (err)
|
|
|
- goto fail_free_drop;
|
|
|
+ err = ext4_init_security(handle, inode, dir, qstr);
|
|
|
+ if (err)
|
|
|
+ goto fail_free_drop;
|
|
|
+ }
|
|
|
|
|
|
if (ext4_has_feature_extents(sb)) {
|
|
|
/* set extent flag only for directory, file and normal symlink*/
|