OSDN Git Service

tune2fs: don't change metadata_csum on a mounted fs
authorDarrick J. Wong <darrick.wong@oracle.com>
Tue, 4 Nov 2014 16:52:26 +0000 (11:52 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 4 Nov 2014 16:52:26 +0000 (11:52 -0500)
Don't let users change metadata_csum on a mounted filesystem because
there's no way to tell the kernel to turn on the feature; there's no
way to prevent the kernel from rewriting on-disk structures while
tune2fs is also rewriting them; and there's no way to tell the kernel
to reload them after tune2fs is finished.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/tune2fs.c

index ecbdea0..7fee870 100644 (file)
@@ -1110,6 +1110,9 @@ mmp_error:
                       EXT4_FEATURE_RO_COMPAT_METADATA_CSUM)) {
                if (check_fsck_needed(fs))
                        exit(1);
+               if (mount_flags & EXT2_MF_MOUNTED)
+                       fputs(_("Cannot enable metadata_csum on a mounted "
+                               "filesystem!\n"), stderr);
                rewrite_checksums = 1;
                /* metadata_csum supersedes uninit_bg */
                fs->super->s_feature_ro_compat &=
@@ -1132,6 +1135,9 @@ mmp_error:
                        EXT4_FEATURE_RO_COMPAT_METADATA_CSUM)) {
                if (check_fsck_needed(fs))
                        exit(1);
+               if (mount_flags & EXT2_MF_MOUNTED)
+                       fputs(_("Cannot disable metadata_csum on a mounted "
+                               "filesystem!\n"), stderr);
                rewrite_checksums = 1;
                /*
                 * If we're turning off metadata_csum and not turning on