Snap for 6240399 from 1a2a2bbb39eafedd3c3bc055c9b75cd5c7e61f3f to rvc-preview2-release
Change-Id: I741e557bf8a36d9ab06c08b2be4ffb53cd3cfbcc
diff --git a/fsck/fsck.c b/fsck/fsck.c
index 4d8aff0..4d437e7 100644
--- a/fsck/fsck.c
+++ b/fsck/fsck.c
@@ -1303,6 +1303,10 @@
struct f2fs_dir_entry *dentry,
const unsigned char *name, u32 len, int enc_name)
{
+ /* Casefolded Encrypted names require a key to compute siphash */
+ if (enc_name && casefolded)
+ return 0;
+
f2fs_hash_t hash_code = f2fs_dentry_hash(encoding, casefolded, name, len);
/* fix hash_code made by old buggy code */
if (dentry->hash_code != hash_code) {
diff --git a/fsck/mount.c b/fsck/mount.c
index e4ba048..325fbaa 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -3052,12 +3052,6 @@
int sb_changed = 0;
struct f2fs_super_block *sb = F2FS_RAW_SUPER(sbi);
- if (c.feature & cpu_to_le32(F2FS_FEATURE_ENCRYPT) &&
- c.feature & cpu_to_le32(F2FS_FEATURE_CASEFOLD)) {
- ERR_MSG("ERROR: Cannot set both encrypt and casefold. Skipping.\n");
- return -1;
- }
-
if (!(sb->feature & cpu_to_le32(F2FS_FEATURE_ENCRYPT)) &&
c.feature & cpu_to_le32(F2FS_FEATURE_ENCRYPT)) {
sb->feature |= cpu_to_le32(F2FS_FEATURE_ENCRYPT);
diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c
index 0e9e7a9..44575e0 100644
--- a/mkfs/f2fs_format.c
+++ b/mkfs/f2fs_format.c
@@ -517,10 +517,6 @@
memcpy(sb->init_version, c.version, VERSION_LEN);
if (c.feature & cpu_to_le32(F2FS_FEATURE_CASEFOLD)) {
- if (c.feature & cpu_to_le32(F2FS_FEATURE_ENCRYPT)) {
- MSG(0, "\tError: Casefolding and encryption are not compatible\n");
- return -1;
- }
set_sb(s_encoding, c.s_encoding);
set_sb(s_encoding_flags, c.s_encoding_flags);
}