linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Goffredo Baroncelli <kreijack@libero.it>
To: Anand Jain <anand.jain@oracle.com>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: [PATCH] btrfs-progs: for mixed group check opt before default raid profile is enforced
Date: Fri, 15 Nov 2013 08:16:46 +0100	[thread overview]
Message-ID: <5285CA5E.6030003@libero.it> (raw)
In-Reply-To: <1384490079-19872-1-git-send-email-anand.jain@oracle.com>

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.jain@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

  reply	other threads:[~2013-11-15  7:16 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-15  4:34 [PATCH] btrfs-progs: for mixed group check opt before default raid profile is enforced Anand Jain
2013-11-15  7:16 ` Goffredo Baroncelli [this message]
2013-11-15 11:11 ` [PATCH v2] " Anand Jain
2013-11-15 11:20   ` Chris Mason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5285CA5E.6030003@libero.it \
    --to=kreijack@libero.it \
    --cc=anand.jain@oracle.com \
    --cc=kreijack@inwind.it \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).