diff mbox

btrfs-progs: dump-tree: add degraded option

Message ID 20180222140011.32713-1-anand.jain@oracle.com (mailing list archive)
State New, archived
Headers show

Commit Message

Anand Jain Feb. 22, 2018, 2 p.m. UTC
btrfs inspect dump-tree cli picks the disk with the largest generation
to read the root tree, even when all the devices were not provided in
the cli. But in 2 disks RAID1 you may need to know what's in the disks
individually, so this option -x | --degraded indicates to use only the
given disk to dump.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
 cmds-inspect-dump-tree.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

David Sterba March 9, 2018, 4:23 p.m. UTC | #1
On Thu, Feb 22, 2018 at 10:00:11PM +0800, Anand Jain wrote:
> btrfs inspect dump-tree cli picks the disk with the largest generation
> to read the root tree, even when all the devices were not provided in
> the cli. But in 2 disks RAID1 you may need to know what's in the disks
> individually, so this option -x | --degraded indicates to use only the
> given disk to dump.
> 
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
> ---
>  cmds-inspect-dump-tree.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/cmds-inspect-dump-tree.c b/cmds-inspect-dump-tree.c
> index df44bb635c9c..587b6081df0c 100644
> --- a/cmds-inspect-dump-tree.c
> +++ b/cmds-inspect-dump-tree.c
> @@ -198,6 +198,7 @@ const char * const cmd_inspect_dump_tree_usage[] = {
>  	"-u|--uuid              print only the uuid tree",
>  	"-b|--block <block_num> print info from the specified block only",
>  	"-t|--tree <tree_id>    print only tree with the given id (string or number)",
> +	"-x|--degraded          For RAID1, use the disk in the arg, do not scan for disks",

I find this confusing, degraded for kernel means 'mount with anything
you have' while here it means 'use exactly that disk'.

Something that would reflect the "don't scan" would be IMHO better, but
otherwise the goal of the patch makes sense.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Anand Jain March 10, 2018, 12:13 a.m. UTC | #2
On 03/10/2018 12:23 AM, David Sterba wrote:
> On Thu, Feb 22, 2018 at 10:00:11PM +0800, Anand Jain wrote:
>> btrfs inspect dump-tree cli picks the disk with the largest generation
>> to read the root tree, even when all the devices were not provided in
>> the cli. But in 2 disks RAID1 you may need to know what's in the disks
>> individually, so this option -x | --degraded indicates to use only the
>> given disk to dump.
>>
>> Signed-off-by: Anand Jain <anand.jain@oracle.com>
>> ---
>>   cmds-inspect-dump-tree.c | 7 ++++++-
>>   1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/cmds-inspect-dump-tree.c b/cmds-inspect-dump-tree.c
>> index df44bb635c9c..587b6081df0c 100644
>> --- a/cmds-inspect-dump-tree.c
>> +++ b/cmds-inspect-dump-tree.c
>> @@ -198,6 +198,7 @@ const char * const cmd_inspect_dump_tree_usage[] = {
>>   	"-u|--uuid              print only the uuid tree",
>>   	"-b|--block <block_num> print info from the specified block only",
>>   	"-t|--tree <tree_id>    print only tree with the given id (string or number)",
>> +	"-x|--degraded          For RAID1, use the disk in the arg, do not scan for disks",
> 
> I find this confusing, degraded for kernel means 'mount with anything
> you have' while here it means 'use exactly that disk'.

  Agreed.

> Something that would reflect the "don't scan" would be IMHO better, but
> otherwise the goal of the patch makes sense.

  Hope this is better.

   -x|--noscan


Thanks, Anand


> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/cmds-inspect-dump-tree.c b/cmds-inspect-dump-tree.c
index df44bb635c9c..587b6081df0c 100644
--- a/cmds-inspect-dump-tree.c
+++ b/cmds-inspect-dump-tree.c
@@ -198,6 +198,7 @@  const char * const cmd_inspect_dump_tree_usage[] = {
 	"-u|--uuid              print only the uuid tree",
 	"-b|--block <block_num> print info from the specified block only",
 	"-t|--tree <tree_id>    print only tree with the given id (string or number)",
+	"-x|--degraded          For RAID1, use the disk in the arg, do not scan for disks",
 	NULL
 };
 
@@ -234,10 +235,11 @@  int cmd_inspect_dump_tree(int argc, char **argv)
 			{ "uuid", no_argument, NULL, 'u'},
 			{ "block", required_argument, NULL, 'b'},
 			{ "tree", required_argument, NULL, 't'},
+			{ "degraded", no_argument, NULL, 'x'},
 			{ NULL, 0, NULL, 0 }
 		};
 
-		c = getopt_long(argc, argv, "deb:rRut:", long_options, NULL);
+		c = getopt_long(argc, argv, "deb:rRut:x", long_options, NULL);
 		if (c < 0)
 			break;
 		switch (c) {
@@ -286,6 +288,9 @@  int cmd_inspect_dump_tree(int argc, char **argv)
 			}
 			break;
 			}
+		case 'x':
+			open_ctree_flags |= OPEN_CTREE_NO_DEVICES;
+			break;
 		default:
 			usage(cmd_inspect_dump_tree_usage);
 		}