Whamcloud - gitweb
mke2fs, tune2fs, resize2fs: add warning messages for bigalloc and quota
authorTheodore Ts'o <tytso@mit.edu>
Tue, 22 Jan 2013 00:07:38 +0000 (19:07 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 22 Jan 2013 00:07:38 +0000 (19:07 -0500)
The bigalloc and quota features have some known issues, so issue
warnings in case users try to use them.

More information can be found here:
https://ext4.wiki.kernel.org/index.php/Bigalloc
https://ext4.wiki.kernel.org/index.php/Quota

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
misc/mke2fs.c
misc/tune2fs.c
resize/main.c

index ace9eae..fe5ce7d 100644 (file)
@@ -1942,6 +1942,18 @@ profile_error:
                exit(1);
        }
 
+       if (fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_BIGALLOC)
+               fprintf(stderr, _("\nWarning: the bigalloc feature is still "
+                                 "under development\n"
+                                 "See https://ext4.wiki.kernel.org/"
+                                 "index.php/Bigalloc for more information\n\n"));
+
+       if (fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_QUOTA)
+               fprintf(stderr, _("\nWarning: the quota feature is still "
+                                 "under development\n"
+                                 "See https://ext4.wiki.kernel.org/"
+                                 "index.php/Quota for more information\n\n"));
+
        /* Since sparse_super is the default, we would only have a problem
         * here if it was explicitly disabled.
         */
index 2c8b9e8..849f3a0 100644 (file)
@@ -736,6 +736,10 @@ void handle_quota_options(ext2_filsys fs)
        quota_release_context(&qctx);
 
        if ((usrquota == QOPT_ENABLE) || (grpquota == QOPT_ENABLE)) {
+               fprintf(stderr, _("\nWarning: the quota feature is still "
+                                 "under development\n"
+                                 "See https://ext4.wiki.kernel.org/"
+                                 "index.php/Quota for more information\n\n"));
                fs->super->s_feature_ro_compat |= EXT4_FEATURE_RO_COMPAT_QUOTA;
                ext2fs_mark_super_dirty(fs);
        } else if (!fs->super->s_usr_quota_inum &&
index 711e375..4cbfe69 100644 (file)
@@ -147,6 +147,18 @@ static void determine_fs_stride(ext2_filsys fs)
 #endif
 }
 
+static bigalloc_check(ext2_filsys fs, int force)
+{
+       if (!force && EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+                               EXT4_FEATURE_RO_COMPAT_BIGALLOC)) {
+               fprintf(stderr, _("\nResizing bigalloc file systems has "
+                                 "not been fully tested.  Proceed\n"
+                                 "at your own risk!  Use the force option "
+                                 "if you want to go ahead anyway.\n\n"));
+               exit(1);
+       }
+}
+
 int main (int argc, char ** argv)
 {
        errcode_t       retval;
@@ -428,6 +440,7 @@ int main (int argc, char ** argv)
                exit(0);
        }
        if (mount_flags & EXT2_MF_MOUNTED) {
+               bigalloc_check(fs, force);
                retval = online_resize_fs(fs, mtpt, &new_size, flags);
        } else {
                if (!force && ((fs->super->s_lastcheck < fs->super->s_mtime) ||
@@ -438,6 +451,7 @@ int main (int argc, char ** argv)
                                device_name);
                        exit(1);
                }
+               bigalloc_check(fs, force);
                printf(_("Resizing the filesystem on "
                         "%s to %llu (%dk) blocks.\n"),
                       device_name, new_size, fs->blocksize / 1024);