mirror of https://github.com/OpenIPC/firmware.git
36 lines
969 B
Diff
36 lines
969 B
Diff
diff -drupN a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
|
|
--- a/fs/ext4/ialloc.c 2018-08-06 17:23:04.000000000 +0300
|
|
+++ b/fs/ext4/ialloc.c 2022-06-12 05:28:14.000000000 +0300
|
|
@@ -1072,6 +1072,17 @@ got:
|
|
if (err)
|
|
goto fail_drop;
|
|
|
|
+ /*
|
|
+ * Since the encryption xattr will always be unique, create it first so
|
|
+ * that it's less likely to end up in an external xattr block and
|
|
+ * prevent its deduplication.
|
|
+ */
|
|
+ if (encrypt) {
|
|
+ err = fscrypt_inherit_context(dir, inode, handle, true);
|
|
+ if (err)
|
|
+ goto fail_free_drop;
|
|
+ }
|
|
+
|
|
err = ext4_init_acl(handle, inode, dir);
|
|
if (err)
|
|
goto fail_free_drop;
|
|
@@ -1093,13 +1104,6 @@ got:
|
|
ei->i_datasync_tid = handle->h_transaction->t_tid;
|
|
}
|
|
|
|
- if (encrypt) {
|
|
- /* give pointer to avoid set_context with journal ops. */
|
|
- err = fscrypt_inherit_context(dir, inode, &encrypt, true);
|
|
- if (err)
|
|
- goto fail_free_drop;
|
|
- }
|
|
-
|
|
err = ext4_mark_inode_dirty(handle, inode);
|
|
if (err) {
|
|
ext4_std_error(sb, err);
|