ext4 crypto: fail the mount if blocksize != pagesize
authorTheodore Ts'o <tytso@mit.edu>
Sat, 13 Jun 2015 03:44:33 +0000 (23:44 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 13 Jun 2015 03:44:33 +0000 (23:44 -0400)
We currently don't correctly handle the case where blocksize !=
pagesize, so disallow the mount in those cases.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/super.c

index 31e85bea965202de46488a682007c643df29de3b..e13fe40d4a51822a4daf079a79455108b79aa948 100644 (file)
@@ -4065,7 +4065,15 @@ no_journal:
                }
        }
 
-       if (unlikely(sbi->s_mount_flags & EXT4_MF_TEST_DUMMY_ENCRYPTION) &&
+       if ((DUMMY_ENCRYPTION_ENABLED(sbi) ||
+            EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_ENCRYPT)) &&
+           (blocksize != PAGE_CACHE_SIZE)) {
+               ext4_msg(sb, KERN_ERR,
+                        "Unsupported blocksize for fs encryption");
+               goto failed_mount_wq;
+       }
+
+       if (DUMMY_ENCRYPTION_ENABLED(sbi) &&
            !(sb->s_flags & MS_RDONLY) &&
            !EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_ENCRYPT)) {
                EXT4_SET_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_ENCRYPT);