Hi Anand, On 2013-11-15 05:34, Anand Jain wrote: > 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.j...@oracle.com> > --- > mkfs.c | 21 +++++++++++---------- > 1 files changed, 11 insertions(+), 10 deletions(-) > > diff --git a/mkfs.c b/mkfs.c > index ec717be..2156150 100644 > --- a/mkfs.c > +++ b/mkfs.c > @@ -1359,17 +1359,13 @@ 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. > + * For mixed groups defaults are single/single > + * however if metadata_profile_opt || data_profile_opt is set > + * metadata_profile and data_profile must be same > */ > if (!mixed) { > if (!metadata_profile_opt) { > @@ -1387,8 +1383,13 @@ int main(int ac, char **av) > BTRFS_BLOCK_GROUP_RAID0 : 0; /* raid0 or single > */ > } > } else { > - metadata_profile = 0; > - data_profile = 0; > + if (metadata_profile_opt || data_profile_opt) { > + if (metadata_profile != data_profile) { > + fprintf(stderr, > + "With mixed block groups data and metadata profiles must be the > same\n");
Please prefix the error message with "ERROR: " otherwise is not so easy to understand that this is an error message and that the filesystem was not created. > + exit(1); > + } > + } > } > > ret = test_num_disk_vs_raid(metadata_profile, data_profile, > It works for me (see below), however I suggest to prefix the error message "With mixed block group..." with the "ERROR" string, otherwise it is not so obvious that something went wrong. ------- # test: make a raid1 filesystem in a small volume to force the "mixed" mode # expected results: the volume must have a Data+Metadata, RAID1 chunk # result: test PASSED ghigo@venice:/tmp$ sudo ~/btrfs/btrfs-progs/mkfs.btrfs -K -m raid1 -d raid1 /dev/loop[01] SMALL VOLUME: forcing mixed metadata/data groups WARNING! - Btrfs v0.20-rc1-595-g9f0c53f IS EXPERIMENTAL WARNING! - see http://btrfs.wiki.kernel.org before using Turning ON incompat feature 'mixed-bg': mixed data and metadata block groups Turning ON incompat feature 'extref': increased hardlink limit per file to 65536 Created a data/metadata chunk of size 8388608 adding device /dev/loop1 id 2 fs created label (null) on /dev/loop0 nodesize 4096 leafsize 4096 sectorsize 4096 size 202.00MiB Btrfs v0.20-rc1-595-g9f0c53f ghigo@venice:/tmp$ sudo mount /dev/loop0 /mnt/test ghigo@venice:/tmp$ btrfs fi df /mnt/test/ System, RAID1: total=8.00MB, used=4.00KB System: total=4.00MB, used=0.00 Data+Metadata, RAID1: total=64.00MB, used=28.00KB Data+Metadata: total=8.00MB, used=0.00 ghigo@venice:/tmp$ sudo umount /mnt/test # test: make a filesystem in a small volume to force the "mixed" mode # with different profiles for data and metadata # expected results: mkfs must fails with an error message # result: test PASSED ghigo@venice:/tmp$ sudo ~/btrfs/btrfs-progs/mkfs.btrfs -K -m dup -d raid1 /dev/loop[01] SMALL VOLUME: forcing mixed metadata/data groups With mixed block groups data and metadata profiles must be the same BR G.Baroncelli -- gpg @keyserver.linux.it: Goffredo Baroncelli (kreijackATinwind.it> Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html