]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
fuse2fs: refuse unsupported features
authorDarrick J. Wong <djwong@kernel.org>
Thu, 24 Apr 2025 21:41:02 +0000 (14:41 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 21 May 2025 14:25:06 +0000 (10:25 -0400)
Don't mount a filesystem with superblock features that we don't actually
know how to support.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Link: https://lore.kernel.org/r/174553064943.1160461.14810321477577468832.stgit@frogsfrogsfrogs
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/fuse2fs.c

index 28443fccf81b35f5b21a2eccb924756f92381a87..017f3658c4b7e56265189f1650b5a794db9c9003 100644 (file)
@@ -3902,6 +3902,26 @@ int main(int argc, char *argv[])
 
        ret = 3;
 
+       if (ext2fs_has_feature_quota(global_fs->super)) {
+               err_printf(&fctx, "%s", _("quotas not supported."));
+               goto out;
+       }
+       if (ext2fs_has_feature_verity(global_fs->super)) {
+               err_printf(&fctx, "%s", _("verity not supported."));
+               goto out;
+       }
+       if (ext2fs_has_feature_encrypt(global_fs->super)) {
+               err_printf(&fctx, "%s", _("encryption not supported."));
+               goto out;
+       }
+       if (ext2fs_has_feature_casefold(global_fs->super)) {
+               err_printf(&fctx, "%s", _("casefolding not supported."));
+               goto out;
+       }
+
+       if (ext2fs_has_feature_shared_blocks(global_fs->super))
+               fctx.ro = 1;
+
        if (ext2fs_has_feature_journal_needs_recovery(global_fs->super)) {
                if (fctx.norecovery) {
                        log_printf(&fctx, "%s\n",