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 31e85be..e13fe40 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);