btrfs-progs: for mixed group check opt before default raid profile is enforced
authorAnand Jain <Anand.Jain@oracle.com>
Fri, 15 Nov 2013 11:11:09 +0000 (19:11 +0800)
committerChris Mason <chris.mason@fusionio.com>
Fri, 15 Nov 2013 17:30:13 +0000 (12:30 -0500)
This fixes the regression introduced with the patch

    btrfs-progs: avoid write to the disk before sure to create fs

what happened with this patch is it missed the check to see if the
user has the option set before pushing the defaults.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
mkfs.c

diff --git a/mkfs.c b/mkfs.c
index ebd8bb5..33369f9 100644 (file)
--- a/mkfs.c
+++ b/mkfs.c
@@ -1373,14 +1373,8 @@ int main(int ac, char **av)
        if (is_vol_small(file)) {
                printf("SMALL VOLUME: forcing mixed metadata/data groups\n");
                mixed = 1;
-               if (metadata_profile != data_profile) {
-                       if (metadata_profile_opt || data_profile_opt) {
-                               fprintf(stderr,
-       "With mixed block groups data and metadata profiles must be the same\n");
-                               exit(1);
-                       }
-               }
        }
+
        /*
        * Set default profiles according to number of added devices.
        * For mixed groups defaults are single/single.
@@ -1402,8 +1396,14 @@ int main(int ac, char **av)
                }
        } else {
                u32 best_leafsize = max_t(u32, sysconf(_SC_PAGESIZE), sectorsize);
-               metadata_profile = 0;
-               data_profile = 0;
+
+               if (metadata_profile_opt || data_profile_opt) {
+                       if (metadata_profile != data_profile) {
+                               fprintf(stderr,
+       "ERROR: With mixed block groups data and metadata profiles must be the same\n");
+                               exit(1);
+                       }
+               }
 
                if (!leaf_forced) {
                        leafsize = best_leafsize;